如果在 Ubuntu 或 Centos 上使用 RAR,这是压缩单个文件夹(里面有子文件夹)的命令,或者是压缩单个存档目录中所有文件夹的命令:
rar a -m0 -r name.rar
在哪里
-m0 是压缩级别
-r递归模式
但是如果我想压缩每个文件夹呢?使用哪些命令?
我想在压缩每个文件夹时保留目录树。
我也试过这个命令,
for folder in */; do echo rar a -m0 -r "${folder%/}.rar" "$folder"; done
但它没有给我任何操作,但在终端中显示为:
user@hppro ~
$ ls -l
total 3
drwxr-xr-x+ 1 user None 0 Aug 2 03:17 abcd_dir
drwxr-xr-x+ 1 user None 0 Aug 2 03:18 defgh_dir
-rwx------ 1 user None 86 Dec 24 2020 blahfile
user@hppro ~
$ for folder in */; do echo rar a -m0 -r "${folder%/}.rar" "$folder"; done
rar a -m0 -r abcd_dir.rar abcd_dir/
rar a -m0 -r defgh_dir.rar defgh_dir/
user@hppro ~
$
参数替换 ${folder%/>
用于删除文件夹名称末尾的“/”。但是这段代码不起作用。
来源:http://www.linuxquestions.org/questions/linux-newbie-8/compress-folder-in-rar-652612/
P.S:我使用的是 Centos 或 Ubuntu 而不是 Windows。
最佳答案
您可能只需要删除 echo
:
for folder in */; do rar a -m0 -r "${folder%/}.rar" "$folder"; done
关于linux - 为目录中的每个子目录创建一个 RAR 存档 - Centos/Ubuntu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25299584/