2

好的,所以我想做的(在 ubuntu 服务器 12.04 中)是获取“服务器”文件夹中的所有目录并分别创建所有目录的 tar.gz。例如:在服务器文件夹内还有 3 个文件夹。服务器 1、服务器 2 和服务器 3。我想在 tar.gz 中压缩 server1、server2 和 server3 的内容。所以在 server1 文件夹中,我有一个 test.txt 文件。我希望这是 server.tar.gz 中唯一的内容。
这是我到目前为止在 bash 中的代码

servers=(servers/*)
for i in "${servers[@]}"
do
NAME=${i:8} <-- to trim off the /servers/ part of /servers/servernumber
tar -C servers/$NAME/ -cvzf $NAME.tar.gz $NAME
done

你能做的任何帮助都会很棒!

4

3 回答 3

0
for dir in servers/*
do
  tar -C $dir -cvzf "$(basename $dir).tar.gz" .
done
于 2013-03-07T00:11:06.243 回答
0

我相信这是你想做的:

for my_dir in servers/server*; do
    tar -C $my_dir -czvf "${my_dir:8}.tar.gz" .
done
于 2013-03-07T00:11:14.473 回答
0
cd /path/top
for dir in server1 server2 server3
do
     cd $dir
     tar -cvfz /tmp/${dir}.tar.gz  *
     cd -
done
ls -lrt /tmp/*.tar.gz

这似乎是你想要的。请尝试并告诉我们

于 2013-03-07T00:12:14.233 回答