好的,所以我想要做的(在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
你能做什么帮助真棒!
答案 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
这似乎是你想要的。请试一试,告诉我们