linux + "ファイル"警告付きのファイルを検索+削除削除済み"

linux + "ファイル"警告付きのファイルを検索+削除削除済み"

findファイル名の一部を使用してファイルを削除できます

find -type f -name '*file_name*' -delete

ファイル削除メッセージをフルファイル名で印刷するには、上記の構文に何を追加する必要がありますか?

答え1

-printオプションのみ追加

find -type f -name '*file_name*' -print -delete

または削除前の確認が必要な場合に使用-ok(ファイル別確認)

find -type f -name '*file_name*' -ok rm -- {} \;

答え2

findいくつかの「対処」をとることができ、実際にはこれはすべて条件としても使用されます。 whereが表すものと-name "*something*" -delete -print同じ-name "*something*" -a -delete -a -print-aそして、Cの演算子と同じ段落ロジックで動作するため、&&後者のコマンド/タスク/テストは、前のコマンド/タスク/テストが成功した場合にのみ実行されます。

したがって、-delete -print実際に削除されたファイルの名前が印刷されます。

$ mkdir test test/ro ; touch test/foo.txt test/ro/bar.txt; chmod 555 test/ro
$ find test -name "*.txt" -delete -print 
find: cannot delete ‘test/ro/bar.txt’: Permission denied
test/foo.txt

を使用すると-print -delete最初に印刷され、find削除できないファイル名も出力されます。

または、より詳細な出力が必要な場合(GNUを探す):

$ find test -name "*.txt" -delete -printf 'deleted: %p\n'

削除されたファイルと削除されていないファイルに対して異なるメッセージを受け取ることもできます(もちろん、一般的なエラーメッセージのため、これは少し重複します)。

$ find test -name "*.txt" \( -delete -printf 'deleted: %p\n' -o 
                             -printf "could not delete: %p\n" \)

答え3

削除時にファイル名全体を表示し、削除する前にファイル名全体を表示したい場合

find . -type f -iname "*file_name*"  -print -exec rm -rvf {} \;

関連情報