从文件夹中压缩任意 5 万个文件,命令怎么写呢?
- 0次
- 2021-06-15 10:17:00
- idczone
问题是,linux 下有个文件夹 box 里有数百万个文件,目标是拿出任意 5 万个文件
我已经实现了 1 个过程(前提是文件都是规则命名的)如下(为了防止 tar 报参数过多的错误,就先做了一个索引)
echo -e box/log_{1..50000}.txt"\n" > aaa.txt
sed -i "s/ //" aaa.txt
tar -cvzf target.tar.gz --files-from ./aaa.txt
问题是,如果文件名没有规律,拿出的命令该怎么写呢?
用 find
find 为了保证速度,它输出的结果是无序的
find 可以只输出随机找到的前 5 万个结果吗
ls|sort -R|head -n 50000
多谢,我改了下,因为文件太多了,sort 会卡死,这样就刚好 ls -U box | head -n 50000 >3.txt
目标是拿出“任意” 5 万个文件
不是随机吧……
head 读完 50000 行就退出,之后 ls 再尝试写进管道就会触发 SIGPIPE 退出自己。