find 명령의 비어 있지 않은 출력만 파일에 저장하고 싶습니다. 출력 파일이 없으면 생성되지 않아야 합니다.
$ ls folder
aa
$ find . -name 'bb' | tee file
$ cat file
$ ls folder
aa file
어떻게 하나요?
답변1
답변2
-exec
파일이 발견된 경우에만 실행되는 옵션을 사용하십시오 .
find . -name 'bb' -exec sh -c 'printf "%s\n" "$@" | tee -a file' sh {} +
설명:
printf "%s\n" "$@"
후행 개행 문자로 각 인수를 인쇄합니다.sh
의 두 번째 인수는sh -c
에 할당됩니다$0
.{} +
인수 로서-exec
이는 "선택한 모든 파일"을 나타냅니다. , 등에sh -c
할당합니다$1
.$2