0

わかりました-それで、これが可能かどうかを確認するために今日一日中試してきました.

私の場合、100 万個のキャッシュ ファイルを含むキャッシュ フォルダーがあります (もちろん、開くことはできません)。そのため、ハウスキーピングのために、120 日以上アクセスされていないものを削除し、削除されたものをログに記録したいと思います。次の行で約 200K のファイルをクリーンアップできました。

find thisfolder -name "pattern*" -type f -atime +120 -exec rm -f {} \; -fprint /home/myfolder/logs/deleted_cache.txt 2>&1

しかし、その後、約 50MB のログ ファイル (deleted_cache.txt) が作成されました。それはハウスキーピングに何の恩恵も与えません。それで、もっとスペースを空けることができることを願って、それをジッパーで締めることを考えていました.

I/O リダイレクト、パイピング、zip について読んでください。何度か試みた後、一列に並べることは不可能に思えます。それを行う唯一の方法はbashスクリプトですか?

教えてください。ありがとうございました。

4

1 に答える 1

0

次のコマンドを使用できます。

find thisfolder -name "pattern*" -type f -atime +120 -delete -printf '%f\n' | gzip > deleted_cache.gz
  • -deleteファイルを削除する
  • -printfファイル名を標準出力に出力する
  • gzip圧縮標準入力

注: Ubuntu でのみテストします。

于 2012-11-26T09:17:58.943 に答える