2

さて、私がやりたいこと(ubuntuサーバー12.04で)は、「servers」フォルダー内のすべてのディレクトリを取得し、それらすべてのtar.gzを個別に作成することです。例:serversフォルダー内にはさらに3つのフォルダーがあります。Server1、server2、server3。server1、server2、server3の内容をtar.gzで圧縮したいと思います。したがって、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
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

This seems to be what you want. Please try it and let us know

于 2013-03-07T00:12:14.233 に答える
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 に答える