如何在没有所有文件夹的情况下创建tar.gz

时间:2013-03-06 23:55:33

标签: linux bash file ubuntu directory

好的,所以我想要做的(在ubuntu服务器12.04中)是获取“servers”文件夹中的所有目录并分别创建所有这些目录的tar.gz。例如: 在servers文件夹中还有3个文件夹。 Server1,server2和server3。我想在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

你能做什么帮助真棒!

3 个答案:

答案 0 :(得分:0)

for dir in servers/*
do
  tar -C $dir -cvzf "$(basename $dir).tar.gz" .
done

答案 1 :(得分:0)

我相信这就是你想要做的事情:

for my_dir in servers/server*; do
    tar -C $my_dir -czvf "${my_dir:8}.tar.gz" .
done

答案 2 :(得分: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

这似乎是你想要的。请试一试,告诉我们