現在の/作業ディレクトリ( を使用して移動cd
)を特定のディレクトリに設定し、次のように入力します。
rm *.xvg
このコマンドは何をしますか?上記のコマンドはのみ拡張子のファイルを削除する.xvg
のみ作業ディレクトリ内ですか?
.xvg
上記のコマンドでファイルのみが削除されることを絶対に確認したかったので、質問する前に試してみることに不安を感じました。作業ディレクトリにある。
答え1
はい、rm *.xvg
そうしますのみ指定された拡張子のファイルを削除します現在ディレクトリ。
あ良いファイルを削除したいディレクトリに実際にいるかどうかを確認するには、pwd
現在のディレクトリを表示するコマンドを使用して、ls
期待するファイルが見つかるかどうかを確認します。
コマンドの発行に少し不安がある場合はrm
、次の 2 つの方法があります。
ls *.xvg
このコマンドによって影響を受けるファイルのリストを表示するには、次のように入力します。あなたが多くファイルの数が多い場合は、
-i
コマンドラインスイッチ を使用することもできますrm
( と にも存在しますcp
)mv
。 を使用するrm -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
、ファイルは削除されます。ここで何が起こっているかというと、コマンドを入力するために使用しているプログラムであるシェルが、引数をコマンドに渡す前にいくつかの変換を実行しているのです。これらの 1 つは「ファイル名の拡張」、別名「グロビング」と呼ばれます。bash ファイル名の拡張の一覧は、ここ最も一般的な展開の 1 つは で*
、これは現在のディレクトリ内のファイル名に展開されます。
動作中の glob を確認する簡単な方法は、 を使用することです。echo
これは、シェルを介して渡されたすべての引数を出力します。したがって、echo *
同じディレクトリに と入力すると、 が出力されますfoo.bar
。したがって、 と入力するとrm *.bar
、実際には、シェルが引数リストを に展開しfoo.bar
、それをコマンドに渡しますrm
。
グロビングを制御する方法はいくつかあります。たとえば、bash の最近のバージョンでは、再帰的な拡張を行う globstar というオプションをオンにすることができます。入力すると、すべてのサブフォルダーにecho **/*.bar
ある で終わるすべてのファイルのリストが表示されます.bar
。したがって、rm **/*.bar
globstar が有効になっている 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)