답변:
입력해야 할 첫 번째 사항 :
man find
man xargs
이 find
명령은 기본적으로 결과를 표준 출력으로 인쇄하므로 -print
옵션은 일반적으로 필요하지 않지만 -print0
공백이나 줄 바꿈이 포함 된 이름을 올바르게 해석 할 수 있도록 파일 이름을 0 (NULL) 바이트로 구분합니다.
-exec
옵션 대신 xargs를의 사용할 수있는 무언가이다 - find 명령은 발견 한 각 항목에 대한 명령을 실행합니다.
이 xargs
명령은 공백 또는 줄 바꿈으로 구분 된 문자열 (일반적으로 find 명령 에서 읽지 만 어디서나 올 수 있음)을 읽고 각 문자열에 대해 일부 명령을 실행합니다.
xargs가 -0 옵션으로 실행되면 NULL로 구분 된 문자열이 다음과 같이 출력됩니다.find ... -print0
xargs의 장점은 문자열을 함께 그룹화 할 수있어 n 번이 아닌 한두 번만 명령을 실행한다는 것 입니다.
따라서 일반적인 사용법에서 :
find start_directory -name '*.txt' | xargs ls -l
find 는 파일 이름을 나열하고 xargs 는 다음과 같은 명령을 실행합니다.
ls -l file1.txt file2.txt file3.txt ... fileN.txt
find 명령을 실행하는 것보다 빠릅니다.
ls -l file1.txt
ls -l file2.txt
ls -l file3.txt
ls -l ...
ls -l fileN.txt
xargs는 현재이 POSIX 구문을 지원하는 현재 찾기 구현에는 더 이상 필요하지 않습니다.
find directory -name '*.txt' -exec ls -l {} +
이것은 xargs 변형보다 더 간단하고 약간 빠릅니다.
find directory -name '*.txt' | xargs ls -l
다음 기사를 참조하십시오.