我正在运行centos,我在一个文件夹中有大约1,300个文件,每个文件都需要单独压缩。最简单的处理方法是什么?
7lrncoxx1#
要在多核Mac上使用bzip2,您可以发出以下命令(当您位于要bzip的文件夹中时)
find . -type f -print0 | xargs -0 -n1 -P14 /opt/local/bin/bzip2
这将使用14个CPU内核同时递归压缩终端所在文件夹中的每个文件。您可以通过编辑来调整要使用的内核数量
-P14
如果您不知道bzip2二进制文件的位置,可以发出以下命令来找出它
which bzip2
该命令的输出是您可以替换的
/opt/local/bin/bzip2
与
ujv3wf0j2#
我已经写了下面的脚本bzip2文件到另一个目录
bzip2
#!/bin/bash filedir=/home/vikrant_singh_rana/test/* for filename in $filedir; do name=$(basename "$filename" | sed -e 's/\.[^.]*$//') bzip2 -dc $filename > /home/vikrant_singh_rana/unzipfiles/$name done
我的示例文件名是这样的
2001_xyz_30Sep2020_1400-30Sep2020_1500.csv.bz2
我无法得到任何直接的命令,所以做了这个。这正如预期的那样工作得很好。
uqdfh47h3#
从目录内部:bzip2 *
bzip2 *
2j4z5cfb4#
find PATH_TO_FOLDER -maxdepth 1 -type f -exec bzip2 -zk {} \;
798qvoo85#
如果所有文件都在一个目录中,则:
一个更可靠的方法是:
find . -type f -exec bzip2 {} +
它将压缩当前目录及其子目录中的每个文件,即使你有成千上万的文件也能工作(如果目录中有太多的文件,使用 * 将中断)。如果您的计算机有多个核心,那么您可以通过一次压缩多个文件来进一步改善这一点。例如,如果你想同时压缩4个文件,用途:
find . -type f -print0 | xargs -0 -n1 -P4 bzip2
如果你得到一个permission denied错误,在xargs之前再放一个sudo:
find . -type f -print0 | sudo xargs -0 -n1 -P4 bzip2
5条答案
按热度按时间7lrncoxx1#
要在多核Mac上使用bzip2,您可以发出以下命令(当您位于要bzip的文件夹中时)
这将使用14个CPU内核同时递归压缩终端所在文件夹中的每个文件。
您可以通过编辑来调整要使用的内核数量
如果您不知道bzip2二进制文件的位置,可以发出以下命令来找出它
该命令的输出是您可以替换的
与
ujv3wf0j2#
我已经写了下面的脚本
bzip2
文件到另一个目录我的示例文件名是这样的
我无法得到任何直接的命令,所以做了这个。这正如预期的那样工作得很好。
uqdfh47h3#
从目录内部:
bzip2 *
2j4z5cfb4#
798qvoo85#
如果所有文件都在一个目录中,则:
一个更可靠的方法是:
它将压缩当前目录及其子目录中的每个文件,即使你有成千上万的文件也能工作(如果目录中有太多的文件,使用 * 将中断)。
如果您的计算机有多个核心,那么您可以通过一次压缩多个文件来进一步改善这一点。例如,如果你想同时压缩4个文件,用途:
如果你得到一个permission denied错误,在xargs之前再放一个sudo: