ここでは、私のディレクトリとサブディレクトリからすべてのチルダファイルを削除したいと思います。ここで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 ... -exec
ARG_MAX
+
-exec
これら2つを組み合わせると、次のようになります。
find . -type f -name '*~*' -exec rm -f {} +
GNUがある場合は、find
次のものを使用できます-delete
。
find . -type f -name '*~*' -delete
では、zsh
次のように繰り返しパターンのマッチングと削除を一度に実行できます。
rm -f -- **/*~*(.)
glob修飾子は.
通常のファイルにのみ一致します。