我只想將 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
等。