チルダ("〜")で始まるフォルダを除いて、フォルダを見つけようとします。以下を試しましたが、結果はありません。find
チルダがワイルドカード文字として解釈されるようです。
find . -type d -not -path '*/\~*'
find . -type d -not -path '*/~*'
find . -type d -not -regex '.*/~.*'
find . -type d -not -regex '.*/\~.*'
私のバージョンのfindはfind (GNU findutils) 4.6.0
。
ベストアンサー1
./path/to/~dir
フォルダをスキップしてスキップしたくない場合は、./path/to/~dir/subdir
他の人がすでに言ったように、次のことを実行できます。
find . ! -name '~*' -type d -print
欲しくないなら削減これらのフォルダに入るには(より多くのフォルダを見つけるには)、次の手順を実行します。
find . -name '~*' -prune -o -type d -print
これはfind
、名前で始まるディレクトリにルートを持つブランチを削除することを意味します~
。
これは基本的にあなたのものと機能的に同じでなければなりません。
find . -type d ! -path '*/~*'
後者はクリーンアップしていないため、ディレクトリを印刷しなくてもそのディレクトリを見ているので、効率が悪くなります。
¹ いくつかの違いがあります。つまり、最初の名前は、無効な文字を含むファイル名と一致しない可能性が*
あります。*/~*