Unix:如何只为每个文件夹中的N个第一个文件tar?
发布时间:2020-12-16 01:58:32 所属栏目:安全 来源:网络整理
导读:我有一个包含2Gb图像的文件夹,子文件夹有几个级别. 我想在tar文件中只存档每个(子)文件夹的N个文件.我试图使用find然后尾巴然后tar但无法让它工作.这是我尝试过的(假设N = 10): find . | tail -n 10 | tar -czvf backup.tar.gz …输出此错误: Cannot stat:
我有一个包含2Gb图像的文件夹,子文件夹有几个级别.
我想在tar文件中只存档每个(子)文件夹的N个文件.我试图使用find然后尾巴然后tar但无法让它工作.这是我尝试过的(假设N = 10): find . | tail -n 10 | tar -czvf backup.tar.gz …输出此错误: Cannot stat: File name too long 这有什么不对?考虑它 – 即使它工作,我认为它只会tar所有文件夹的前10个文件,而不是每个文件夹的前10个文件. 如何获取每个文件夹的前N个文件? 解决方法
一个有一些怪癖的提案:订单只能由查找的订单决定,因此“第一”没有明确定义.
find . -type f | awk -v N=10 -F / 'match($0,/.*//,m) && a[m[0]]++ < N' | xargs -r -d 'n' tar -rvf /tmp/backup.tar gzip /tmp/backup.tar 评论: >使用find. -type f确保文件具有前导目录名前缀,因此下一步可以工作 此外,您可能不希望将备份文件写入当前目录,因为您正在扫描 – 这就是为什么此建议写入/ tmp. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |