これが出力です。
echo *.*
file1.txt file2.txt file3.txt
echo * .*
file1.txt file2.txt file3.txt . ..
2番目のコマンドにピリオドの前にスペース文字が含まれていない場合、これらのファイルが含まれるのはなぜですか?たくさん愛してくれてありがとう!
ベストアンサー1
これらは2つの別々の領域です。最初の項目は*
隠しファイルを除くすべての項目と一致するのでfile1.txt
、file2.txt
、file3.txt
。 2番目は.*
、名前が:で始まる隠しファイルとディレクトリにのみ一致するため、およびを.
印刷します。.
..
スペースの後にピリオドがあるファイル/ディレクトリ名のみを印刷するには、スペースが区切り文字として扱われないようにスペースをエスケープする必要があります。
$ ls
file1.txt 'file2 .txt'
$ echo *\ .*
file2 .txt
最後に、これが「すべてと一致する」という意味ではないことに言及したいと思います*.*
。 Windowsシステムとは異なり、* nixシステムにはファイル名拡張子は必要ありません(まれな例外がありますが、拡張子は完全にオプションで任意です)。 * nixシステムでは、globは名前にaを含むファイル名*.*
のみを印刷します。.
$ ls
file file1.txt 'file2 .txt'
$ echo *.*
file1.txt file2 .txt
すべてのファイルを印刷するには、単一を使用します*
。
$ echo *
file file1.txt file2 .txt