findを使用するときは、親ディレクトリをサブディレクトリの一部としてリストしないでください。

findを使用するときは、親ディレクトリをサブディレクトリの一部としてリストしないでください。

次のような状況があるとしましょう。

$ find ./src -name '*.txt'
./src/file1.txt
./src/subdir1/file2.txt
./src/subdir1/subsubdir1/file3.txt
./src/subdir2/file4.txt

検索しているディレクトリを除外したいと思います。次のようになります。

./file1.txt./src/file1.txt
./subdir1/file2.txt待つ代わりに./src/subdir1/file2.txt

追加しても-mindepth 1効果はありません。

私が欲しいものを純粋にできますかfind

ベストアンサー1

findサポートされているバージョンがない場合は、この-printf '%P'代替構成を使用して検索パスを含めないでください。

問題の始点:

find ./src -name '*.txt'

同じですが、結果に検索パスはありません。

( cd ./src && find . -name '*.txt' )

あなたの質問に示されているファイル構造を仮定すると、結果は次のようになります。

./file1.txt
./subdir1/file2.txt
./subdir1/subsubdir1/file3.txt
./subdir2/file4.txt

おすすめ記事