find:名前に数字を含むディレクトリと、サブディレクトリを除くすべてのディレクトリを一覧表示します。

find:名前に数字を含むディレクトリと、サブディレクトリを除くすべてのディレクトリを一覧表示します。

数字のないすべてのディレクトリ(元のパスを除く)を見つけるには、次のコマンドを実行します。

find /path/2/directory -type d -name '[!0-9]*'

問題は、見つかったディレクトリがその番号のディレクトリのサブディレクトリであることです。

例:

/path/2/directory/20160303/backup

でも

/path/2/directory/backup20160303a/backup

findがそのようなディレクトリを返すのを防ぐ方法はありますか?

深さを制限するだけでは、この問題を解決できません。深さはさまざまです。

例:

/path/2/directory/subdirectory/20160303/backup

ベストアンサー1

-prune次のディレクトリを無視するために使用されます。

find /path/to/directory -name '*[0-9]*' -prune -o -type d -print

ただしgnu、これを設定する場合は、上記のCコマンドを実行するときにロケールを使用することをお勧めします。以下のStéphaneの説明を参照してください。

おすすめ記事