検索〜と検索*の違い

検索〜と検索*の違い

検索ファイルfind *との違いは何ですか?find ~端末で現在の作業ディレクトリを開くと、root端末で

root@devils-ey3:~# find * -print -quit
~

同じディレクトリに

root@devils-ey3:~# find ~ -print -quit
/root

ただし、変更するとpwd出力はfind ~ -print -quit以前と同じですが、他の出力は変更されます。ファイル検索は何を*しますか?~

ベストアンサー1

の基本形式find

find WHERE WHAT

したがって、find **見なされますWHERE。今*それはワイルドカードです。現在のディレクトリ内のすべてのエントリと一致します(デフォルトで始まるファイル/ディレクトリを除く.)。 Windowsに該当するのはです*.**拡大するこれを説明するために、find次のディレクトリを検討してください。

$ ls
file  file2

set -xデバッグ情報を有効にしてコマンドを実行すると、find次のようになります。

$ find * -print -quit
+ find file file2 -print -quit
file

上記のように、*ディレクトリ内のすべてのファイルに展開すると、実際に実行されるのは次のとおりです。

find file file2 -print -quit

そのため、-quit検索を指定したファイルの最初のファイル名を印刷して終了します。あなたの場合は、というファイルまたはディレクトリがあるように見え、~それが印刷されます。

ただし、チルダ(~)には特別な意味もあります。これはあなたのディレクトリへのショートカットです$HOME

$ echo ~
/home/terdon

したがってfind ~、rootとして実行すると、~これに拡張され、/home/root実際に実行されるコマンドは次のようになります。

# find ~ -print -quit
+ find /root -print -quit
/root

find繰り返しますが、特定の場所からファイルまたはディレクトリを検索し、最初の項目を印刷して終了することを意味します。最初に一致するファイルまたはディレクトリが/rootそれ自体であるため、これが印刷されます。

おすすめ記事