39
39
Linuxで特定の文字列で始まるすべてのファイルを削除する方法
ディレクトリツリー内の名前NAME
で始まるファイルをすべて見つけて、1つのシェルコマンドを使ってこれらのファイルをすべて削除する必要があります。
ディレクトリツリー内の名前NAME
で始まるファイルをすべて見つけて、1つのシェルコマンドを使ってこれらのファイルをすべて削除する必要があります。
私はこの方法を試してみましたが、以下のコマンドを試してみてください。
rm -rf Example*
ここでの “Example "は全てのファイルに共通のテキストです。
globstar
オプション](https://www.gnu.org/software/bash/manual/bash.html#The-Shopt-Builtin) (shopt -s globstar
で有効にする):
rm -f **/NAME*
**/
./
、*/
、*/*/
、*/*/*/
、NAME
などと展開します。rm
で始まるdirectory名がある場合、コマンドはrm
がディレクトリを削除できないと文句を言いますが、それだけです。
グロブが多数のファイルにマッチする場合、これはコマンドラインの長さの制限にぶつかる可能性があることに注意してください。
find . -type f -name 'NAME*' -exec rm -f {} +
(+
文を閉じるために \;
の代わりに -exec
を使用していることに注意)
find . -name 'foo'* -type f -delete
が一番シンプルな答えのようです。
どのファイルが削除されるかを確認するために、前に-delete
フラグを付けずにこれを実行することができます。