在Linux上递归归档文档树中的小文件?

在Linux上递归归档文档树中的小文件?,第1张

概述给定一个基本目录(比如/ home / user)是否有一个可以运行的命令,它会创建一个存档来备份该目录中的所有文本文件(即小于100kb的文件)并且它是子文件?我知道你可以tar / gz一个目录 – 但是排除文件呢? 这个想法是大多数照片,视频和其他大文件都会被忽略,而所有重要的手工文档都可以在项目和服务器周围快速备份. UPDATE 使用skinp的很棒的代码,我能够备份少量的文件.但是,正 给定一个基本目录(比如/ home / user)是否有一个可以运行的命令,它会创建一个存档来备份该目录中的所有文本文件(即小于100kb的文件)并且它是子文件?我知道你可以tar / gz一个目录 – 但是排除文件呢?

这个想法是大多数照片,视频和其他大文件都会被忽略,而所有重要的手工文档都可以在项目和服务器周围快速备份.

UPDATE

使用skinp的很棒的代码,我能够备份少量的文件.但是,正如DerfK指出的那样 – 你可以传递给命令的参数大小是有限的.考虑到这一点,我能够写出发现的内容,希望我可以使用一些东西来读取内容到tar并绕过这个限制.另一个选项似乎是一个sh脚本,可以一次将每个文件添加到存档.

find /home/username -type f -size -100k > List.of.small.files.txt

其中呈现了6MB的文件.

解决方法 看看到目前为止发布的其他答案,我担心我看到的xargs和find -exec {}的用法是错误的.如果文件列表长度增长足以使x -gs多次执行tar -c,则填充到该点的tar文件将被覆盖.因此,只有最后一次调用tar的文件才会在tar文件中结束.

无论文件总数如何,无论文件名是否包含嵌入的换行符,这里都应该始终有效:

find /home/user -type f -size -100k -print0 | tar -c -z --null --files-from=- -f backup.tgz

find命令生成要备份的以空值终止的文件名列表,tar命令从管道中读取该列表并创建tarfile backup.tgz.

总结

以上是内存溢出为你收集整理的在Linux上递归归档文档树中的小文件?全部内容,希望文章能够帮你解决在Linux上递归归档文档树中的小文件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/yw/1036347.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存