我如何能够将子目录压缩到单独的档案中?
例子:
directory
subdir1
subdir2
Run Code Online (Sandbox Code Playgroud)
应该创建 subdir1(.tar).gz 和 subdir2(.tar).gz
Jul*_*ano 30
鉴于您的要求,这个小脚本似乎是您的最佳选择:
cd directory
for dir in */
do
base=$(basename "$dir")
tar -czf "${base}.tar.gz" "$dir"
done
Run Code Online (Sandbox Code Playgroud)
它正确处理名称中带有空格的目录。
Chr*_*rel 12
这个怎么样: find * -maxdepth 0 -type d -exec tar czvf {}.tar.gz {} \;
说明:您对当前目录中的所有项目运行查找。Maxdepth 0 使它不会递归任何低于给定参数的递归。(在这种情况下,*,或当前目录中的所有项目)“-type”的 'd' 参数仅匹配目录。然后 exec 在任何匹配项上运行 tar。({} 替换为匹配文件)
这将为名为 blah 的目录中的每个文件创建一个名为 blah.tar.gz 的文件。
$ cd directory
$ for dir in `ls`; do tar -cvzf ${dir}.tar.gz ${dir}; done
Run Code Online (Sandbox Code Playgroud)
如果您在目录中拥有的不仅仅是目录(即文件,因为 ls 将返回目录中的所有内容),请使用以下命令:
$ cd directory
$ for dir in `find . -maxdepth 1 -type d | grep -v "^\.$" `; do tar -cvzf ${dir}.tar.gz ${dir}; done
Run Code Online (Sandbox Code Playgroud)
grep -v 排除find默认情况下将显示在命令中的当前目录。
| 归档时间: |
|
| 查看次数: |
35460 次 |
| 最近记录: |