Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何在没有所有文件夹的情况下创建tar.gz_Linux_Bash_File_Ubuntu_Directory - Fatal编程技术网

Linux 如何在没有所有文件夹的情况下创建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

好的,我想做的是(在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[@]}"
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