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