トリムを次のように使用しようとしています。
find /opt/app/bss/sieb/fs_clone1/userpref -name "*" -type f -mtime -7 -prune
まだサブディレクトリを検索しています。
ベストアンサー1
サブディレクトリを検索していないため、まだ-prun
サブディレクトリを検索しています。
-prune
ツリーの場合は、find
最初に一致する必要があります。
find / -type d ! -path / -prune -print
/boot
/home
/mnt
/opt
/esp
/dev
/proc
/root
/run
/srv
/sys
/tmp
/usr
/var
/etc
-path /
それ以外の場合は、最初に見つかったディレクトリが/
ルートディレクトリになります。それ-prune
その後、-print
編集が行われます。
しかし、見てわかるように、はいマッチd ファイルが-prune
すべてです。だからあなたはマッチ -type f
ツリーはまったくありません-prune
。一般ファイルにはサブディレクトリはありません。
おそらく次のようなものが欲しいでしょう。
find /opt/app/bss/sieb/fs_clone1/userpref \
-path \*path/to/ignore -prune -o \
! -type d -mtime -7
これはあなたが言ったものとは非常に異なります。まずは-path path/to/ignore
動作しません。それは一致する必要がありますみんなパスで始まり、開始ツリーは始まります/
が、path/to/ignore
まったくそうではありません。だから私は*
globstarを入れましたが、より良い - おそらくより簡潔には次のようになります:
cd /opt/app/bss/sieb/fs_clone1/userpref &&
find . -path ./path/to/ignore -prune -o \
! -type d -mtime 7
...これにより、出力が複雑になります。ただし、どちらのパターンにも一致するすべてのパスは「d」に-path
なります。-prune
いいえ別のステートメントに移動したために印刷され、自動的に印刷されるスクリプト全体の最後の式にすぎません-o
。find
しかし最後の部分も違う。-name '*'
名前はすべて一致するため、フィルタリングしないことをお勧めします'*'
。私はこれが! -type d
多くの人が言うときに意味していると思います-type f
。前者は、fifo、ソケット、その他の奇妙なファイル形式を含むディレクトリ以外のすべてのファイル形式と一致します。後者は通常のファイルにのみ一致します。おそらくあなたは後者が欲しいでしょう。しかし、私はそれを言及したかっただけです。
とにかく、すべてが決定され、完了すると、*path/to/ignore
他のすべてが一致し、切り捨てられ、印刷されません。このファイルはディレクトリタイプではなく、7日前に変更されました。