ディレクトリ内の複数のファイルをリンクまたは削除します。

ディレクトリ内の複数のファイルをリンクまたは削除します。

通常、同じ拡張子を持つファイルをリンクするには、catを使用します*.txt。しかし、別のディレクトリにあり、別のディレクトリのファイルをリンクしようとするとどうなりますか?次の文を含むシェルスクリプトを作成しました。

cat /home/tarakaramji/*.txt

間違い:

cat /home/tarakaramji/*.txt no such file or directory

同じ拡張子を持つ複数のファイルを削除するのと同じです。

rm /home/tarakaramji/*.txt 

答え1

指定したディレクトリにファイルが存在しないか、.txtディレクトリが完全に間違っているようです。ここで何が起こるのかは、デフォルトでシェルがファイルを見つけられない場合、/home/tarakaramji/*.txtそのcat名前のファイルも存在しないため、エラーが発生する理由です。

最初の操作を実行すると、使用したいファイルを正確に確認できますecho

echo /home/tarakaramji/*.txt

のみ表示する必要があります/home/tarakaramji/*.txtnullglobシェルオプションを設定するとリテラルの使用が防止されるため、実際には引数はありません。

shopt -s nullglob
echo /home/tarakaramji/*.txt

この場合、catエラーは発生せずから始まりますstdin

関連情報