从目录获取文件名,将其放入文件,然后压缩(UNIX)

时间:2012-11-26 08:04:52

标签: unix zip pipe io-redirection

好的 - 所以我今天一整天都在努力看看这是不可能的。

在我的情况下,我有一个缓存文件夹包含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脚本是唯一的方法吗?

请赐教。 谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用此命令:

find thisfolder -name "pattern*" -type f -atime +120 -delete -printf '%f\n' | gzip > deleted_cache.gz
  • -delete删除文件
  • -printf将文件名打印到stdout
  • gzip compress stdin

注意:我只在Ubuntu中测试它。