我有一个目录,我想扫描它并将每个超过 50 天的文件添加到名为 archive.tar 的新档案中
所有超过 50 天的文件必须放在一个大的 tar 中,而不是每个文件一个 tar 中。
我怎样才能做到这一点?
答案1
这将达到目的:
# find /path/to/files -type f -mtime +50 | xargs tar cvf archive.tar
您可以将其粘贴到 crontab 中并让其每天运行。
编辑:请记住,这不会从系统中删除文件,只会将它们添加到档案中。
答案2
要附加到档案,请使用r
选项而不是c
:
find dirname -type f -mtime +50 | xargs tar rvf archive.tar
仅当文件比档案中已有的副本更新时才附加文件:
find dirname -type f -mtime +50 | xargs tar uvf archive.tar
答案3
使用 find 命令查找超过 50 天的文件,并让 find 命令运行 tar 将找到的文件附加到 tar。为了提高性能,通常将 find 命令的输出传递给 xargs 程序。
我使用 Google 搜索了“find tar xargs”,得到了两个不错的链接:
http://content.hccfl.edu/pollock/Unix/FindCmd.htm
http://www.devdaily.com/blog/post/linux-unix/using-find-xargs-tar-create-huge-archive-cygwin-linux-unix