/bin/find /root -name '*.csv'
を使用すると、以下が返されます。
/root/small_devices.csv
/root/locating/located_201606291341.csv
/root/locating/located_201606301411.csv
/root/locating/g_cache.csv
/root/locating/located_201606291747.csv
/root/locating/located_201607031511.csv
/root/locating/located_201606291746.csv
/root/locating/located_201607031510.csv
/root/locating/located_201606301412.csv
/root/locating/located_201606301415.csv
/root/locating/located_201607031512.csv
実際には/root/locating/
の下のすべてのファイルが必要ではないため、期待される出力は単に/root/small_devices.csv
です。
「検索」を非再帰的に使用する効率的な方法はありますか?
必要に応じて、CentOSを使用しています。
あなたはそれを-maxdepth
オプション
/bin/find /root -maxdepth 1 -name '*.csv'
man find
-最大深度レベル
開始点より下のディレクトリのほとんどのレベル(負でない整数)のレベルを下ります。
-maxdepth 0
は、テストとアクションを開始点自体にのみ適用することを意味します。
標準のfind
を使用:
find /root ! -path /root -Prune -type f -name '*.csv'
これにより、/root
ディレクトリ自体を除いて、検索から/root
内のすべてのディレクトリがプルーニング(削除)され、*.csv
に一致する通常のファイルのファイル名の印刷が続行されます。
GNU find
(および-maxdepth
を理解する他のfind
実装)を使用):
find /root -maxdepth 1 -type f -name '*.csv'