![如何递归压缩目录中的所有子文件夹?](https://linux22.com/image/1117825/%E5%A6%82%E4%BD%95%E9%80%92%E5%BD%92%E5%8E%8B%E7%BC%A9%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E6%89%80%E6%9C%89%E5%AD%90%E6%96%87%E4%BB%B6%E5%A4%B9%EF%BC%9F.png)
目前,我有这个目录结构:
/Downloads
/Download 1/
/Download 2/
/Download 3/
...
我想要这样的目录结构:
/Downloads
Download 1.zip
Download 2.zip
Download 3.zip
...
本质上,我想将下载 1 压缩到其中Download 1.zip
,然后删除下载 1。实现此目的最快/最简单的方法是什么?我正在运行 Ubuntu 12.04。
我之所以询问是因为这个文件夹在我的本地网络上共享。当有人在我的 Apache Web 服务器上询问这个问题时,我希望他们下载Download 1
,所以我需要它是一个 zip 文件。
答案1
尝试使用我在图像中尝试过的命令,希望这对您有所帮助。
为了删除你只需添加一行
rm -rf $i
总命令可以表示为
for i in ~/sandbox/*; do zip -r "$i".zip "$i"; rm -rf "$i"; done
验证 Zip 创建成功后删除文件夹的命令。
for i in ~/sandbox/*; do zip -r "$i".zip "$i" && rm -rf "$i"; done
感谢@evilsoup 的关注。希望这能有所帮助。