特定のフォルダから特定の拡張子を持つすべてのファイルを削除する方法は?

特定のフォルダから特定の拡張子を持つすべてのファイルを削除する方法は?

cd現在/作業ディレクトリを特定のディレクトリに設定し(検索を使用)、次のように入力します。

rm *.xvg

このコマンドは何をしますか?上記のコマンドは実際に実行されますか?ただ拡張子付きファイルの削除.xvg ただ作業ディレクトリにありますか?

.xvg上記のコマンドがファイルのみを削除するかどうかを確認したかったので、要求する前にこれを試すことは不安でした。作業ディレクトリに配置

答え1

はい、rm *.xvgそうです。ただディレクトリから指定された拡張子を持つファイルを削除する現在の目次。

いいねファイルを削除したいディレクトリに実際に存在するかどうかを確認する方法は、pwd現在のディレクトリを表示するコマンドを使用して、ls目的のファイルが見つかったことを確認することです。

このコマンドを実行するのが少し心配な場合は、次のrm2つのことができます。

  1. ls *.xvgこのコマンドの影響を受けるファイルのリストを表示するには、入力してください。

  2. 一つ持っていない限りたくさん-iファイルの数に応じて、いつでもコマンドラインスイッチを使用できます(rmおよびにもあります)。この機能を使用すると、個々のファイルを削除できるかどうかを尋ねるメッセージが表示されるため、誤って削除されないようにすることができます。 (ファイルが多いと退屈することがあります:)cpmvrm -i *.xvg

答え2

ディレクトリに移動する必要はありません。次を使用します。

rm /some/dir/*.xvg 

/som/dir が存在しないパスに誤字や類似のエラーがある場合:

cd /som/dir
rm *.xvg

現在のディレクトリ内のすべての.xvgファイルが誤って削除されます。最初のコマンドはそうではないので、再びCDを使用する必要はありません。

もう一つの方法は find を使うことです。

find /some/dir/ -maxdepth 1 -type f -name "*.xvg" -delete 

答え3

はい、現在のディレクトリで終わるファイルのみがrm *.xvg削除されます。.xvg理由は次のとおりです。

このようなコマンドを入力すると、ジョブは使用中のシェル(bash仮定)とコマンドバイナリの間で分割されます。

と入力してバイナリファイルを見つけることができますwhich rm。この小さなプログラムはファイルの関連付けを解除します。このようなプログラムはコマンドラインから起動でき、起動prog arg1 arg2 arg3時に引数のリストを読むことができます。の場合、rm削除する完全修飾ファイル名のリストとして解釈されます。したがって、ファイルが含まれているディレクトリにある場合、foo.bar入力結果delete 'foo.*'はですrm: foo.*: No such file or directory。ファイルパターンの周りの一重引用符に注意してください。これは、シェルがそのまま引数を渡すように指示します。

ただし、rm *.bar同じディレクトリに入力するとファイルが削除されます。ここで何が起こるのかは、シェル(コマンドの入力に使用するプログラム)が引数をコマンドに渡す前にいくつかの変換を実行することです。その一つは、「ワイルドカード」とも呼ばれる「ファイル名拡張子」です。 Bashファイル名拡張子のリストを見ることができます。ここ。最も一般的な拡張の1つは、*現在のディレクトリのファイル名に拡張されることです。

動作中のglobを見る簡単な方法は、echoシェルを介して渡されたすべての引数を再印刷することを使用することです。したがって、echo *入力は同じディレクトリに出力されますfoo.bar。したがって、と入力すると、rm *.bar実際にはシェルが引数のリストを展開し、foo.barそれをrmコマンドに渡します。

ワイルドカードを制御する方法はいくつかあります。たとえば、最新バージョンの bash では、再帰的に拡張される globstar というオプションを設定できます。入力すると、echo **/*.barすべてのサブフォルダーで終わるすべてのファイルのリストが表示されます.bar。したがって、rm **/*.barglobstarを有効にしてbashを入力すると、実際にサブフォルダ内の一致するすべてのファイルが再帰的に削除されます。

答え4

注文する:

  rm ./*.pgm

私のために働く

注文する:

rm *.pgm

無効なコマンドを提供する(ポーランド語、翻訳):

rm: wrong option - '1'
Use "rm ./-1000.pgm" to delete the file '-1000.pgm'.
Write "rm --help" for information.

存在する

bash --version
GNU bash, wersja 4.4.19(1)-release (x86_64-pc-linux-gnu)

関連情報