パターンに一致するすべてのファイルを削除するにはどうすればよいですか?


76

Mercurialで元に戻すと、いくつかの.origファイルが残ります。それらをすべて削除するコマンドを実行できるようにしたいと思います。

私は実行すると言ういくつかのソースを見つけました:

rm **/*.orig

しかし、それは私にメッセージを与えます:

rm: `* / .orig 'を削除できません:そのようなファイルまたはディレクトリはありません

私も試しました:

  • rm -rv *.orig

  • rm -R *\.orig


見てみましょうsuperuser.com/a/699287/92334
Lu55

回答:


149

findコマンドを使用します(注意してください!)

find . -name '*.orig' #-delete

deleteコマンドをコメントアウトしましたが、一致するものに満足したら#、行からを削除するだけで、それらのファイルがすべて削除されます。


それは再帰的に機能しますか?
フランクバルセナス

2
@FrankBarcenasええ-findはすべてを再帰的に行います。それがどのように機能するかを制限したい場合は、-maxdepthor -mindepth引数で遊ぶことができます。
オリ

6
必ずフラグ-delete最後に残してください。find . -delete -name '*.orig'フィルタを無視し、ディレクトリ全体を上書きします。
マイケル

1
@マイケル、はい。すでに問題を解決しましたgit clean -fdx
kyb

1
@kamal私はおそらくまだ見つけるが、そので使用すると思います-regex-iregex述語。ファイル名の解析(パイピングする場合)は、安全に実行できない場合があります。
オリ

6

「find」には、すべてまたは現在のディレクトリとrmファイルを検索するための非常に高度な技術があります。

find ./ -name ".orig" -exec rm -rf {} \;

3
使用することの利点は何-deleteですか?
ムル

@muru -rfを削除すると、各ファイルのプロンプトが表示されます。
ピーター

@Peterは必ずしもそうではありません。それでもそうですか?答えはを使用し-rffind持ってい-okます。
ムル

-deleteは、フォルダを削除しないように見えます@muru
Andrii Karaivanskyi

@AndriiKaraivanskyiは、削除が失敗しない限り、そうします。
ムル

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.