このコマンドは、指定された名前と一致するすべてのファイルをリストします。
find . -iname .DS_Store
ただし、そのパラメータを使用すると、-delete
削除されたファイルのリストは表示されません。ちょうど削除されました。
| xarg ..
またはで複雑にしないことをお勧めします-exec rm {}
。削除されたファイルを表示するために使用できるマジックフラグはありますかfind . -iname .DS_Store -delete
?
print0
PS:フラグを削除せずにコマンドを実行できることを知っていますが、操作を実行できるようなもの(印刷するのは面倒です)を探しています。
答え1
-print
コマンドの最後に以下を追加します。
find . -name .DS_Store -delete -print
見つかったファイルのパス名が出力されます。
これがmacOSシステム(またはBSDシステム)にある場合、デフォルトの実装find
を使用して-delete
述語はいつも返品本物、これはルールが-print
常に有効であることを意味します。これは、上記のコマンドが正常に削除されたかどうかに関係なく、見つかったすべてのパス名を印刷することを意味します。-delete
GNUの述語find
が返されます。間違った名前を削除できない場合。
macOSまたはBSDシステムを使用していて、これが重要な場合は、次のものを使用してください。
find . ! -type d -name .DS_Store -exec rm {} \; -print
代わりに。ここでrm
指定された名前を削除できない場合は、ゼロ以外の終了ステータスが返されます。これはパス名が-print
適用されないことを意味します。ディレクトリ以外のファイルのみが削除される! -type d
ためrm
(使用しない場合)追加しましたrm -r
。