オプションの使い方を知りたいですfind -maxdepth 0
。
次のディレクトリ構造があります。
--> file1
--> parent
--> child1
--> file1
--> file2
--> child2
--> file1
--> file2
--> file1
次に、find
次のコマンドを実行します。
find ./parent -maxdepth 0 -name "file1"
find ./ -maxdepth 0 -name "file1"
find . -maxdepth 0 -name "file1"
find
上記のコマンドがない場合ファイル1返されます。
マニュアルページでfind
次の情報を見ることができます。
-maxlength 0は、コマンドライン引数にのみテストと操作を適用することを意味します。
オプションのいくつかの例を検索しましたが、-maxdepth 0
適切な例が見つかりませんでした。
私のfind
バージョンは、
find --version
find (GNU findutils) 4.4.2
-maxdepth 0
誰かが私にどのようなケースオプションが役に立つかについてのアドバイスを与えることができますか?
編集する
次のコマンドを実行すると、ファイル12回リストされています。これがうまくいく方法ですか?
find . file1 -maxdepth 1 -name "file1"
./file1
file1
ベストアンサー1
file1
現在ディレクトリにあるとしましょう。それから:
$ find . -maxdepth 0 -name "file1"
$ find . file1 -maxdepth 0 -name "file1"
file1
さあ、何を見よう文書状態:
-maxdepth 0
コマンドラインパラメータはテストとタスクのみが適用されることを意味します。
上記の最初の例にはディレクトリのみがあります。.
コマンドラインに一覧表示されます。 ~から.
名前がなく、file1
出力に何も表示されません。上記の2番目の例では、両方.
file1
列はコマンドラインにあり、match file1
のために-name "file1"
出力に返されます。
つまり-maxdepth 0
、いいえディレクトリまたはサブディレクトリを検索します。代わりに、一致するファイルはコマンドラインに明示的にリストされているファイルの中にのみ見つかります。
あなたの例では、ディレクトリだけがコマンドラインに表示され、そのうちの名前はfile1
。したがって、出力はありません。
通常、多くのファイルとディレクトリの名前をコマンドラインで指定できます。たとえば、ここではfind
9つのファイルとディレクトリを含むコマンドラインからコマンドを試してみます。
$ ls
d1 file1 file10 file2 file3 file4 file5 file6 file7
$ find d1 file1 file10 file2 file3 file4 file5 file6 file7 -maxdepth 0 -name "file1"
file1
重複するパス
考慮する:
$ find . file1 -maxdepth 0 -iname file1
file1
$ find . file1 file1 -maxdepth 0 -iname file1
file1
file1
$ find . file1 file1 -maxdepth 1 -iname file1
./file1
file1
file1
find
. file
コマンドラインで指定されたすべてのパスは、パスが同じファイルにリンクされている場合(または同様に)、パスが正確に重複している場合でも一致するものを探しますfile1 file1
。