Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何通过循环加速压缩文件夹_Linux - Fatal编程技术网

Linux 如何通过循环加速压缩文件夹

Linux 如何通过循环加速压缩文件夹,linux,Linux,我想找到一个快速的方法来压缩循环文件夹。我有1000个文件夹,每个文件夹有40000个文件(总大小为3 GB) 以下是我执行此操作的代码: for f in Simulation*/; do echo "$f" && test "$(find "$f" -type f | wc -l)" -eq 40000 && find -type f | grep -P '\.csv|\.tiff|\.txt' | tar -czf "${f%/}.tar.gz" "${

我想找到一个快速的方法来压缩循环文件夹。我有1000个文件夹,每个文件夹有40000个文件(总大小为3 GB)

以下是我执行此操作的代码:

for f in Simulation*/; do
echo "$f" &&  
test "$(find "$f" -type f | wc -l)" -eq 40000 &&
find -type f | grep -P '\.csv|\.tiff|\.txt' | tar -czf "${f%/}.tar.gz" "${f%/}" &&
rm -rf "$f"
done
以下是有关代码的一些详细信息:

  • 步骤1:查找包含40000个文件的完整文件夹
  • 第2步:在完整文件夹中查找扩展名为(.csv、.tiff、.txt)的文件并进行压缩
  • 步骤3:删除已压缩的原始文件夹

任何关于如何改进我的代码的想法都将不胜感激。

如果它按照您想要的方式工作,您可以删除
find-type f|grep-p'\.csv\.tiff\.txt'
部分,因为它被忽略了。你考虑过并行化吗?非常感谢你的回答。如果删除此部分,所有文件都将被压缩。我只想压缩文件与一些扩展名。请仔细检查它的工作方式,你认为。在正常的GNU/Linux设置中,您正在导入的内容将被忽略。是的,它工作正常(我也检查了每个代码行),但循环似乎太慢。请帮我一个忙,删除
find-type f | grep-P'\.csv\.tiff\.txt'
,然后再次尝试运行该脚本,即使您知道它将不再工作?(
find-typef
将列出所有1000个文件夹中的文件,而不仅仅是当前文件夹中的文件,因此,如果它确实按照您假设的方式工作,它不会在每个归档中打包所有40000000个文件吗?)