0

ここで、私がやりたいことを見つけるのに少し苦労しています。

私がやろうとしているのは、ディレクトリの内容が100MBを超えたときにディレクトリ内のファイルを削除することです(これはキャッシュファイルです)。manページを読んだ後、私はそれを熟考したと思った. できれば2日以上経過したファイルだけを削除してほしいのですが、そこまでこだわりはありません。

だから私がこれまでに持っているものは次のとおりです。

$ find .cache/chromium/Default/Cache/ -type d -mindepth 1 -size +100M -mtime 2 -delete

しかし、実行しようとすると、次のようになります。

find: 警告: 非オプション引数 -type の後に -mindepth オプションを指定しましたが、オプションは位置指定ではありません (-mindepth は、その前に指定されたテストと、その後に指定されたテストに影響します)。他の引数の前にオプションを指定してください。

私はそれを次のように変更しました:

$ find .cache/chromium/Default/Cache/ -mindepth 1 -type d -size +100M -delete

警告はありませんでしたが、何も削除しませんでした。

私が間違っていることについてのアドバイス/ガイダンスはありますか?

[編集] 現在、ディレクトリは 433M です。

4

3 に答える 3

0

-deleteインの代わりにfind .cache/chromium/Default/Cache/ -mindepth 1 -type d -size +100M -delete

(「;」が必要) が結果を直接渡すfind .cache/chromium/Default/Cache/ -mindepth 1 -type d -size +100M -exec rm -rf {} \;場所を試してください。-exec rm -rf {} \;rm

于 2013-05-25T03:22:46.157 に答える
0

私はすでにあなたの現在のシナリオをエミュレートしようとしましたが、すでに100MB以上のファイルを削除する方法は次のとおりです:

find .cache/chromium/Default/Cache/ -type d -print0 | du -h | grep '[0-9]\{3\}M' | cut -f2 | grep -v '^.$' | xargs -I directory rm -rfv directory

まず第一に、ディレクトリをリストしようとすると、約 4KB (4096) しかリストされないため、find が 100MB を超えるディレクトリを見つけることができなかったのはなぜですか。find コマンドは、ディレクトリのサイズのみをチェックします --- ディレクトリの下の内部ファイルは含まれません。

コマンドを実行する前に、echoコマンドを使用してドライ ランを実行してみてください。

find .cache/chromium/Default/Cache/ -type d -print0 | du -h | grep '[0-9]\{3\}M' | cut -f2 | grep -v '^.$' | xargs -I directory echo directory

-type d引数を更新しました。また、現在の作業ディレクトリを検索パスに変更してみてください。

cd .cache/chromium/Default/Cache/

コマンドを実行します: (find . -type d -print0 | ... ここで予行演習コード ...)。

于 2013-05-25T08:07:46.163 に答える