一般的に表示されるコマンドはfind
次のとおりです。
$ find . -name foo.txt
現在のディレクトリから検索が開始される場合。私のコンピュータ(Ubuntu、Cygwin)で同じ結果が得られましたが、pipがないことがわかりました。
通常なぜ含まれますか?これは明示的な規則ですか、それとも一部のシステムでこれを要求しますか?
答え1
一部のバージョン*find
では、検索を開始するディレクトリであるパスパラメータを指定する必要があります。ドットは、.
単に現在のディレクトリ、通常は検索したい場所を表します。
これを検索ベースとして使用したいパスに置き換えることができます。 findの一部のバージョンでは、パス引数がないと現在のディレクトリが暗黙的になるため、このオプションを保持できます。
man find
シェルで実行して、パラメータの詳細を取得できます。例えば使用量の概要私の表現では、パスパラメータはオプションです(角かっこではありません[]
)。
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
find
引数なしでmyを実行すると、現在のフォルダから始まるすべてのファイルとディレクトリが返されます。あなたの例では、検索は.
式で始まり、-name foo.txt
検索フィルタの1つとして含める必要があることを明示的に示しています。
*みんな注目すべき点はBSDバリアントそして何でも厳密に遵守しなければなりません。POSIX規格。GNUを探す許可するのはオプションです。
答え2
例えば、AIX バージョンの find にはパスが必要であり、パスが指定されていない場合は実行されません。
# oslevel -s
5300-08-03-0831
# find -name bob
Usage: find [-H | -L] Path-list [Expression-list]
# oslevel -s
6100-03-01-0921
# find -name bob
Usage: find [-H | -L] Path-list [Expression-list]
一部のAIXシステムには、パスなしで対処できるGNU findがインストールされている場合がありますが、
# oslevel -s
6100-03-01-0921
# /opt/freeware/bin/find -version
GNU find version 4.1