私はfind "/home/../.." -type f -not -path "*/FolderName/*"
無視するのに慣れていますフォルダ名含まれるものから。しかし、私はfind
まだこれを繰り返していることを読んだ。フォルダ名。上記のコマンドを使用してこのフォルダ内のファイルを検索すると、ファイルが一覧表示されないため、そのフォルダがまだ閲覧されているかどうかはわかりません。-prune
実際に巡回されたフォルダを無視するというのですが、それが-prune
本当に必要なのかよくわかりません。
ベストアンサー1
(暗黙-depth
的に)、、、、、(オプションで置き換えられます)、、、/述語(すべての実装がこれらすべてをサポートしているわけではありません)は、ディレクトリ巡回に影響を与える唯一の述語です。-delete
-depth
-prune
-maxdepth <n>
-depth [+-]<n>
-follow
-L
-quit
-exit
-xdev
-mount
代わりにここ
... ! -path '*/whatever/*' ...
あなたはできます:
... \( ! -name whatever -o -prune \) ...
または直接除外したい場合whatever
(ただし! -path '*/whatever/*'
機能しません):
... -name whatever -prune -o \( ... \)
挿入する必要があるもの今後のような述語-type f
。
これにより、*
一部のロケールおよび一部の実装(ほとんどの一般的なロケールのGNUなど)で文字に変換されないバイトシーケンスの不一致の問題も回避されます。find
あなたの例は次のとおりです。
find "/home/../.." \( ! -name FolderName -o -prune \) -type f -print
または:
find "/home/../.." -name FolderName -prune -o \( -type f -print \)
FolderName
(タイプではないファイルも含め、名前付きのファイルはすべて除外されます。目次)。