Linuxコマンドを使用してチルダでマークされた不要なファイルを削除する方法は?

Linuxコマンドを使用してチルダでマークされた不要なファイルを削除する方法は?

ここでは、私のディレクトリとサブディレクトリからすべてのチルダファイルを削除したいと思います。ここでLinuxコマンドを使用する方法は?

ツリー構造:

.
|-- Block_Physical_design_checklist
|   |-- Block_Physical_design_checklist.config
|   |-- Block_Physical_design_checklist.html
|   |-- Block_Physical_design_checklist.html~
|   `-- rev6
|       |-- rev6.config
|       `-- rev6.html
|-- CAD_checklist
|   |-- CAD_checklist.config
|   |-- CAD_checklist.html
|   |-- CAD_checklist.html~
|   `-- rev6
|       |-- rev6.config
|       `-- rev6.html
|-- Formality_DCT_Vs_ICC
|   |-- Formality_DCT_Vs_ICC.config
|   |-- Formality_DCT_Vs_ICC.html
|   |-- Formality_DCT_Vs_ICC.html~
|   `-- rev6
|       |-- rev6.config
|       |-- rev6.html
|       `-- rev6.html~

予想されるツリー構造:

.
|-- Block_Physical_design_checklist
|   |-- Block_Physical_design_checklist.config
|   |-- Block_Physical_design_checklist.html
|   `-- rev6
|       |-- rev6.config
|       `-- rev6.html
|-- CAD_checklist
|   |-- CAD_checklist.config
|   |-- CAD_checklist.html
|   `-- rev6
|       |-- rev6.config
|       `-- rev6.html
|-- Formality_DCT_Vs_ICC
|   |-- Formality_DCT_Vs_ICC.config
|   |-- Formality_DCT_Vs_ICC.html
|   `-- rev6
|       |-- rev6.config
|       |-- rev6.html

ベストアンサー1

あなたのアプローチにはfind . -type f -name '*~' -exec rm -f '{}' \;改善が必要ないくつかの問題/範囲があります。

  • -name '*~';で終わるファイルのみを一致させます。以下~を含むすべてのファイルを一致させるには、次~を使用します。*~*

  • -exec rm -f '{}' \;各ファイルに対して生成するrmのは不器用で非効率的です。代わりに、複数のファイルを引数として渡すことができるので、引数の使用をトリガーしなくても、一度に必要なだけ多くのファイルを取得rmできます。find ... -execARG_MAX+-exec

これら2つを組み合わせると、次のようになります。

find . -type f -name '*~*' -exec rm -f {} +

GNUがある場合は、find次のものを使用できます-delete

find . -type f -name '*~*' -delete

では、zsh次のように繰り返しパターンのマッチングと削除を一度に実行できます。

rm -f -- **/*~*(.)

glob修飾子は.通常のファイルにのみ一致します。

おすすめ記事