Linux 如何在没有所有文件夹的情况下创建tar.gz
好的,我想做的是(在ubuntu服务器12.04中)获取“服务器”文件夹中的所有目录,并分别创建一个tar.gz。例如: servers文件夹中还有3个文件夹。服务器1、服务器2和服务器3。我想在tar.gz中压缩server1、server2和server3的内容。所以在server1文件夹中,我有一个test.txt文件。我希望这是server.tar.gz中的唯一内容。Linux 如何在没有所有文件夹的情况下创建tar.gz,linux,bash,file,ubuntu,directory,Linux,Bash,File,Ubuntu,Directory,好的,我想做的是(在ubuntu服务器12.04中)获取“服务器”文件夹中的所有目录,并分别创建一个tar.gz。例如: servers文件夹中还有3个文件夹。服务器1、服务器2和服务器3。我想在tar.gz中压缩server1、server2和server3的内容。所以在server1文件夹中,我有一个test.txt文件。我希望这是server.tar.gz中的唯一内容。 以下是我在bash中的代码 servers=(servers/*) for i in "${servers[@]}" d
以下是我在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
servers=(servers/*)
对于“${servers[@]}”中的i
做
NAME=${i:8}我相信这就是你想要做的:
for my_dir in servers/server*; do
tar -C $my_dir -czvf "${my_dir:8}.tar.gz" .
done
这似乎是你想要的。请尝试一下,让我们知道你想要这样的东西吗:你想要创建一个单独的server.tar.gz
,它对每个server*
目录下的所有文件进行tar,但不应该在tar文件中创建单独的server*
目录吗?Perreal-我很难理解他在做什么本质上,我只想获取/servers/server1/中的内容以及其中的那些文件,这就是我在server1.tar.gz文件tuxdude中所需要的全部内容-我希望服务器文件夹中的每个文件夹都有一个单独的tar.gz文件。因此,server1.tar.gz、server2.tar.gz、server3.tar.gz这将不起作用,因为第二次循环时,您将在server1子目录中,cd server2
将不起作用。
for my_dir in servers/server*; do
tar -C $my_dir -czvf "${my_dir:8}.tar.gz" .
done
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