Linuxのファイルには通常、名前が含まれていないことに気付くでしょう。教師または同僚は、ファイル名とディレクトリ名のスペースの代わりにアンダースコアを使用します。
Linux端末ではファイル名にスペースを使用できないわけではありません。それはそれが追加の痛みを生み出すというだけであり、それがあなたが可能な限りそれを避けるべきである理由です。
なんで?例を挙げてそれを示しましょう。 Linuxコマンドの一般的な構文を知っています:
command [options] argument1 argument2
ここでは、引数はスペースで区切られています。スペースを含むファイル名を直接使用しようとすると、1つの引数ではなく、個別の引数として扱われます。
上のスクリーンショットで、cat agatha books
を使おうとすると コマンド、それはそのagatha books
を理解していません は単一の引数です。 agatha
を扱います およびbooks
別のファイル名として。
では、ファイル名のスペースをどのように処理しますか? 2つの方法があります:
ファイル名全体を引用符で囲みます:
"file name withn spaces"
バックスラッシュキーを使用してすべてのスペースをエスケープします:
file\ name\ with\ spaces
詳細をお見せします。
タブ補完は、多くの場合、スペースでも機能します。ファイル名のTabキーを押すと、端末にバックスラッシュでスペースを省略したファイル名が表示される場合があります。スペースを含むファイル名を使用するには、次のように引用符で囲みます。
cat "file name with spaces"
バックスラッシュを使用してすべてのスペースをエスケープすることもできますが、以前の方法よりも作業が多く、混乱を招きます。
cat file\ name\ with\ spaces
基本的に、\
を配置します ファイル名のすべてのスペースの前。
二重引用符の代わりに一重引用符を使用することもできます。
cat 'file name with spaces'
一重引用符は特殊文字を無視します。二重引用符は、$、逆引用符、およびbaclslashesを除くすべてを無視します。詳細については、他のチュートリアルをご覧ください。 ここでファイル名を作成するには、ターミナルにスペースを入力する必要があります。もう一度円記号または引用符を使用してください。
前のセクションと同様に、引用符を使用してファイル名にスペースを含む新しいファイルを作成できます。
touch "file name with spaces"
またはバックスラッシュも:
touch file\ name\ with\ spaces
ファイルを作成するのと同じ方法で、名前にスペースを含むディレクトリを作成できます。
mkdir "new dir"
これで、このディレクトリに切り替えたい場合は、スペースを含むパスがあります。
しかし、それはもうあなたにとって問題ではないはずです。スペースのあるディレクトリにCDを挿入するには、引用符または円記号をもう一度使用します。
cd "new dir"
cd new\ dir
基本的に、名前のスペースを処理する必要がある場合は常に、引用符または円記号を使用します。
ファイルをコピーする必要があるとしますmy file
このnew dir
から 。できることは次のとおりです。
cp new\ dir/my\ file
今、少し混乱し始めていますよね?バックスラッシュとフォワードスラッシュがあります。それらのスラッシュが多すぎると、新しいユーザーや熟練したユーザーを威嚇する可能性があります。
ファイル名に円記号が含まれていると、さらに厄介になります。次に、二重のバックスプラッシュが表示されます。
これが、ファイル名にスペースやその他の特殊文字を使用しないようにする必要がある理由です。ファイル名の単語を区切るには、アンダースコアを使用します。
touch a_very_long_file_name_with_too_many_words
これにより、ファイル名が読みやすくなり、ファイル名内のこれらのスペースを処理するために余分な労力を費やす必要がなくなります。