"find -delete"で削除されたファイルのリストを取得する

このコマンドは、指定された名前と一致するすべてのファイルをリストします。

find . -iname .DS_Store

ただし、そのパラメータを使用すると、-delete削除されたファイルのリストは表示されません。ちょうど削除されました。

| xarg ..またはで複雑にしないことをお勧めします-exec rm {}。削除されたファイルを表示するために使用できるマジックフラグはありますかfind . -iname .DS_Store -delete

print0PS:フラグを削除せずにコマンドを実行できることを知っていますが、操作を実行できるようなもの(印刷するのは面倒です)を探しています。

ベストアンサー1

-printコマンドの最後に以下を追加します。

find . -name .DS_Store -delete -print

見つかったファイルのパス名が出力されます。

これがmacOSシステム(またはBSDシステム)にある場合、デフォルトの実装findを使用して-delete述語はいつも返品本物、これはルールが-print常に有効であることを意味します。これは、上記のコマンドが正常に削除されたかどうかに関係なく、見つかったすべてのパス名を印刷することを意味します。-deleteGNUの述語findが返されます。間違った名前を削除できない場合。

macOSまたはBSDシステムを使用していて、これが重要な場合は、次のものを使用してください。

find . ! -type d -name .DS_Store -exec rm {} \; -print

代わりに。ここでrm指定された名前を削除できない場合は、ゼロ以外の終了ステータスが返されます。これはパス名が-print適用されないことを意味します。ディレクトリ以外のファイルのみが削除される! -type dためrm(使用しない場合)追加しましたrm -r

おすすめ記事