「食料品リスト」という名前のファイルを作成したい(このファイルの名前には 2 つの単語が含まれます)

「食料品リスト」という名前のファイルを作成したい(このファイルの名前には 2 つの単語が含まれます)

使えることは知っています

cat > fire

「fire」という名前のファイルを作成します。しかし、ファイル名に「Grocery list」のように 2 つの単語が含まれている場合は、どのように作成すればよいでしょうか?

以来

cat > Grocery list

奇妙なメッセージを表示しますcat: list: No such file or directory

私を助けてください。

答え1

たくさんの方法:

  • 名前を一重引用符で囲む:

    cat > 'Grocery list'
    
  • 名前を二重引用符で囲む:

    cat > "Grocery list"
    
  • 空白をエスケープするには\:

    cat > Grocery\ list
    

次の操作を行うと:

cat > Grocery list

Grocery2つの単語として解釈されますlist

出力方向> Groceryはシェルによって行われ、最初に実行されるため、ファイルGroceryが作成され、次にがの引数として取得されますcat list。おそらく現在のディレクトリにファイルが存在しないため、ファイルが見つからないというエラーが発生します。listcatlistlist

つまり、この場合、基本的には次のことを行います。

cat list > Grocery

答え2

どうにかしてその空間から脱出する必要があります。heemayl さんが良い回答をしていますが、詳細についてはこちらも読むことをお勧めします:シェル スクリプトが空白文字やその他の特殊文字で動作しなくなるのはなぜですか?

ファイル自体の作成に関しては、 を使用する必要はありませんcat

> file

十分です。

関連情報