通常、同じ拡張子を持つファイルをリンクするには、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/*.txt
。nullglob
シェルオプションを設定するとリテラルの使用が防止されるため、実際には引数はありません。
shopt -s nullglob
echo /home/tarakaramji/*.txt
この場合、cat
エラーは発生せずから始まりますstdin
。