我正在查找一个命令,它将分别压缩目录中的每个文件夹,每个文件夹的名称反映了原始文件夹名称。我知道命令批量压缩目录下的所有文件/文件夹
焦油czvf example.tar.gz例如/
将压缩整个文件夹。但是,我还没有找到批量归档的命令。有这样的命令吗?
我正在查找一个命令,它将分别压缩目录中的每个文件夹,每个文件夹的名称反映了原始文件夹名称。我知道命令批量压缩目录下的所有文件/文件夹
焦油czvf example.tar.gz例如/
将压缩整个文件夹。但是,我还没有找到批量归档的命令。有这样的命令吗?
find -mindepth 1 -maxdepth 1 -type d -exec tar czf {}.tar.gz {} \;
请注意,我用-maxdepth 1
。
考虑目录结构:
.
|-- a
| `-- x
|-- b
`-- c
没有-maxdepth 1
你会得到a.tar.gz
和a/x.tar.gz
。 a.tar.gz
将包含x和其中的所有文件;而a/x.tar.gz
将包含x及其文件。但是,如果这不是目标,它会将这些项目存储在x中两次。
更新使用-mindepth 1
为好,因为当外界的example/
的example.tar.gz
将创建上运行。
更新 ...和bzip2的:
find -mindepth 1 -maxdepth 1 -type d -exec tar cjf {}.tar.bz2 {} \;
好了,这里就是我想出了存档,然后用bzip2压缩的最大压缩
发现-mindepth最后的命令1 -maxdepth 1 -type d -exec tar cjf'{}'。tar.bz2'{}'\;
谢谢大家!
是的,我在你的未来看到find,xargs和sed。 – 2009-09-20 20:02:37
是的,你sed它;) – undoIT 2009-09-21 00:24:43