'を使って見つけました。探す'コマンドは、いくつかの不一致があるように見える個々のファイルを検索します。たとえば、次の単語を含む特定のファイルを検索したいとします。紙その名前で。入力すると、sudo find /mnt -iname *paper*
出力は次のようになります。
/mnt/data/MyPhotos/Wallpapers
それは公平です。私が望むのはそれではありません。ただし、入力すると sudo find /mnt -iname "*paper*"
出力は次のようになります。
/mnt/data/MyMusic/FLV-Music/Joe_Jackson_Sunday_Papers_small.mp4
/mnt/data/MyMusic/FLV-Music/Status_Quo_Paper_Plane_medium.mp4
/mnt/data/MyPhotos/Wallpapers
これで、検索中のファイル(2番目のファイル)が表示されます。それでは、最初のケースでは最後のファイルだけが出力としてマークされ、2番目のケースではすべてのファイルに文字列が含まれるのはなぜですか?paper
彼らの名前で出力されます。ここで引用文がなぜ変わりますか?
ベストアンサー1
引用符がない場合、シェルは*
前のfind
isを解析し、globを拡張します(可能な場合)。引用符を使用すると、ワイルドカードは発生しません。
展示する:
$ tree
.
├── Wallpapers
└── stuff
├── Newspapers
├── Wallflowers
└── Wallpapers
2 directories, 3 files
$ find stuff -iname *paper*
stuff/Wallpapers
$ find stuff -iname '*paper*'
stuff/Wallpapers
stuff/Newspapers