「rm files*」はすべてのサブディレクトリから一致するものをすべて削除しますか?

「rm files*」はすべてのサブディレクトリから一致するものをすべて削除しますか?

wordpress-891.sql現在のディレクトリ(サブディレクトリ内ではない)から、のようなファイルをすべて削除したいと思います。

うまくいきますかrm wordpress-*.sql、それともサブディレクトリからの一致も削除されますか?

答え1

いいえ。通常のグロブは*再帰的ではなく、 も同様ですrm

ディレクトリ名が一致する場合、ディレクトリは削除されません。-rディレクトリを削除するにはフラグが必要です。

したがって、それらのファイルを削除しても問題ない場合は、そうしても安全です。

rmインタラクティブに作ることもできます

rm -i wordpress-*.sql

各ファイルを削除する前に確認を求めます

答え2

はい、これで問題は解決し、現在のディレクトリにあるそのスキーマを持つすべてのファイルが削除されます。ただし、サブディレクトリ内のファイルは削除されません。

次のようなコマンドを実行したときに何が起こるかわからない場合は、

rm wordpress-*.sql

次に、次のコマンドを使用して実行しますls

ls wordpress-*.sql

出力に表示されるファイルは削除されるファイルです。

次のようなリストを取得しようとしている場合は、 etcという名前のディレクトリ内のファイルがリストされないようにするために、switchfoo*を使用することをお勧めします。-dlsfoobar/

ls -d foo*

このトリックは、ジョブを再帰的に実行するために使用されないコマンドに対して機能します。

他にできることは、必要な入力を入力することです。たとえば、+ +wordpress-*を押すと、一致するものがすべてコマンドの前に自動的に入力されます。CtrlAlt*

答え3

いいえ、rmサブディレクトリを再帰的に処理しません。

見るすべてのサブディレクトリ内の一致するファイルを削除する - SuperUserサブディレクトリ内のファイルを削除する方法。

重要なものを誤って削除してしまうことが心配な場合は、 (ファイルを完全に削除)gvfs-trashではなく、 (ファイルをゴミ箱に送る)を使用してくださいrm

答え4

などの一致するファイルをすべて検索して削除したい場合はwordpress-*.sql、 コマンドを使用できますfind。 :)

wordpress-*.sqlたとえば、の下にある一致するファイルをすべて削除したい場合はtest_dir、次のようにします。

cd test_dir
find . -name "wordpress-*.sql" -exec rm -f {} \;

プログラムが実際に一致するファイルを見つけるとfind、オプションに続くコマンドを実行しようとします-exec。この場合、rm -f {}が実行され、{}一致するファイル名に変更されます。例:

rm -f wordpress-169.sql

オプションを使用してサブディレクトリの深さを設定することもできます-maxdepth

cd test_dir
find . -maxdepth 3 -name "wordpress-*.sql" -exec rm -f {} \;

他のオプションの前にオプションを指定する必要があります-maxdepth。そうしないと、望まない結果が表示される場合があります。

関連情報