web-dev-qa-db-ja.com

xargsで引数を引用する方法

1 MBを超えるフォルダー内のすべてのファイルを削除するとします。

$ find . -size +1M | xargs -0 rm

名前にスペースがあるファイルは削除されません。したがって、rmに送信するすべての引数を引用する必要があります。 findがそれを与える場合Some report.docx渡す必要があります"Some report.docx"からrmへ。

どうやってやるの?

16
Kshitiz Sharma

簡単な使用:

find . -size +1M -delete

xargsrmfindと一緒に使用する場合は、-print0コマンドで:

find . -size +1M -print0 | xargs -r0 rm --

他の方法:

find . -size +1M -execdir rm -- {} +

から man find

-print0
    True; print the full file name on the standard output, followed by a null 
character (instead of the newline character that -print uses). This allows file names 
that contain newlines or other types of white space to be correctly interpreted by 
programs that process the find output. This option corresponds to the -0 option of 
xargs.
13
αғsнιη