Suponha que eu queira excluir todos os arquivos em uma pasta com mais de 1 MB.
$ find . -size +1M | xargs -0 rm
Isso não excluirá os arquivos que possuem espaço em seus nomes. Então, eu quero que cite todos os argumentos para os quais envia rm
. Se find
der, Some report.docx
deve passar "Some report.docx"
para rm
.
Como eu posso fazer isso?
De maneira mais geral, consulte Por que meu script de shell é bloqueado em espaço em branco ou em outros caracteres especiais?
—
Gilles 'SO- stop be evil'
Use
—
imz - Ivan Zakharyaschev
xargs -d$'\n'
para limitar o delimitador apenas a novas linhas (e não a espaços; isso não processará aspas etc., especialmente - verifiquei em um sistema GNU) - a resposta dada em stackoverflow.com/a/33528111/94687
xargs
. Também como o wiki sugere, não usexargs
sem passar-print0
parafind
.