gzipping一组目录并创建一个tar压缩文件

mor*_*ous 14 bash shell ubuntu gzip

我的bash fu不应该是它应该是什么.

我想创建一个小批量脚本,它将目录列表复制到一个新的zip文件中.

有(至少)两种方法我可以考虑证明文件列表:

  1. 从文件中读取(比如config.txt).该文件将包含要压缩的目录列表OR

  2. 硬件将列表直接编码到bash脚本中

第一种选择似乎更直接(虽然不那么优雅).

我面临的两个问题是我不知道如何做以下事情:

  • 提供shell脚本的目录列表
  • 迭代目录列表

有人可以建议几行,我怎么能这样做?

顺便说一句,我在Ubuntu 10.0.4上运行

Pet*_*den 29

您可以在命令行上创建一个gzipped tar,如下所示:

tar czvf mytar.tar.gz dir1 dir2 .. dirN
Run Code Online (Sandbox Code Playgroud)

如果您想在bash脚本中执行此操作并将目录作为参数传递给脚本,那么这些参数最终会进入$@.那么你有:

tar czvf mytar.tar.gz "$@"
Run Code Online (Sandbox Code Playgroud)

如果是在脚本中(比如说myscript.sh),你可以将其称为:

./myscript.sh dir1 dir2 .. dirN
Run Code Online (Sandbox Code Playgroud)

如果你想从列表中读取(你的选项1)你可以这样做(如果目录名中有空格,这不起作用):

tar czvf mytar.tar.gz $(<config.txt)
Run Code Online (Sandbox Code Playgroud)