Quero salvar apenas a saída não vazia do comando find em um arquivo. Se não houver nenhum arquivo de saída, não deverá ser criado.
$ ls folder
aa
$ find . -name 'bb' | tee file
$ cat file
$ ls folder
aa file
Como fazer isso?
Responder1
Responder2
Use a -exec
opção, que só será executada se os arquivos forem encontrados:
find . -name 'bb' -exec sh -c 'printf "%s\n" "$@" | tee -a file' sh {} +
Explicação:
printf "%s\n" "$@"
Imprima cada argumento com uma nova linha à direita.sh
O segundo argumento parash -c
é atribuído a$0
.{} +
Como-exec
argumentos, representam "todos os arquivos selecionados".sh -c
atribui-os a$1
,$2
, etc.