bash - 如何在没有顶级文件夹的情况下压缩文件但保留子文件夹

标签 bash shell unix zip

假设我有一个名为abc的文件夹,它有几个递归的子文件夹,我想压缩abc下的所有内容,当我使用以下命令时

zip -r abc.zip abc/*

我得到了 abc.zip,但它包含顶级文件夹 abc,并且所有内容都在 abc 下,例如 abc/xxx、abc/yyy 等,如何删除顶级文件夹 abc?我想将所有内容直接放在 abc.zip 中。

注意:

  1. 我只能从文件夹外部压缩,所以导航到文件夹 abc,zip * 对我不起作用
  2. 我需要在一行中运行这个命令,我可以用 ; 分隔多个命令
  3. 选项 -j 也不起作用,因为它删除了子文件夹,我想将它们保留在那里。

最佳答案

cd abc
zip -r ../abc.zip *

虽然我会说在大多数情况下保留它 abc 可以更轻松地进行管理。

关于bash - 如何在没有顶级文件夹的情况下压缩文件但保留子文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13719408/

相关文章:

python - 隐藏 os.system 产生的控制台输出

linux - 无法从 shell 脚本终止进程

linux - MAC OS X 别名文件夹/文件不会在 Windows 上保留

linux - 接受命令的脚本

linux - 当我在其中导出变量时,Shell 脚本不起作用

linux - 写入任何地方的用户空间程序

windows - cygwin 更新原因 "Error: could not fork child process: Resource temporarily unavailable."

bash - 如何在 bash 脚本中获取文件的第一行?

bash - 在此处使用两个字符串

linux - 使用 grep 查找一行并仅打印该行的 2 个单词