답변:
find . -name *foo* | xargs -r ls -lah
작동합니다.
-exec +(또는 -exec \;) 를 사용하는 것입니다 . 옵션 xargs과 함께 사용하는 것만 안전합니다. -0즉 xargs, 항목을 NULL 바이트 (\ 0)로 구분 하기 위해 파이프하는 모든 명령을 지시 해야합니다. find당신 과 함께 할 수 있습니다 -print0. xargs의 -0 및 find의 -print0은 표준은 아니지만 -exec는 이식성이 문제인 경우 -exec와 함께 find를 사용하십시오.
이것을 사용하십시오 : (ls는 공백이 있거나 이상한 문자가있는 파일 이름으로 정렬 할 수 있습니다)
find . -name *foo* -print0 | xargs -0 ls -lah
"-print0"은 파일 이름과 같은 파일 이름 file foo 1에서 find널 이 출력 됨을 의미합니다 . xargs에 대한 "-0"인수는 이러한 종류의 입력을 예상하므로 공백이있는 파일 이름이 ls명령에 올바르게 파이프 됩니다.
xargs건설은보다 나은 몇 가지 방법에 find etc -exec ls {} \;파일 이름의 모두로 전송받을 때문에 ls당신이 (사용 타임 스탬프에 의해 그들 모두를 정렬 할 그렇다면, 한 번에 ls이 작품 등) 뭔가 :
find . -iname *pdf -print0 | xargs -0 ls -ltr
NetBSD 시스템에서, "-printx"도 옵션입니다 (이것은 나에게 유용한 주장 인 것 같습니다. 그러나 우리는 xargs -0을 가지고 있고 괜찮습니다) :
find . -name *foo* -printx | xargs ls -lah (우분투 아님)