我正在运行centos,我在一个文件夹中有大约1,300个文件,每个文件都需要单独进行压缩。最简单的方法是什么?
答案 0 :(得分:18)
如果所有文件都在一个目录中,那么:
bzip2 *
够了。一种更强大的方法是:
find . -type f -exec bzip2 {} +
将压缩当前目录及其子目录中的每个文件,即使您有数万个文件也会工作(如果目录中的文件太多,则使用*会中断)。
如果您的计算机有多个内核,则可以通过一次压缩多个文件来进一步改进。例如,如果要同时压缩4个文件,请使用:
find . -type f -print0 | xargs -0 -n1 -P4 bzip2
答案 1 :(得分:2)
要在多核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
与
答案 2 :(得分:1)
我已将下面的脚本写入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
我无法获得任何直接命令,因此做到了这一点。一切正常。
答案 3 :(得分:0)
从目录中:bzip2 *
答案 4 :(得分:0)
find PATH_TO_FOLDER -maxdepth 1 -type f -exec bzip2 -zk {} \;