Kompresja gzip w locie przed dodaniem do tar

Cześć,

 

da się przed dodaniem folderu do tar-a zarchiwizować go do gzip? np.

 

“tar  rvfp name.tar | gzip > path/file”

 

powyższa komenda mi nie działa. Jeszcze jedno pytanie - co zrobić żeby dodać ostatni plik/katalog w ścieżce, a nie całe drzewo katalogowe?

Najpierw dodaje się wszystko do tara, a potem gzipuje aby zajmowało mniej i łatwiej można było rozpakować.

gzip -zvcf archiwum.tar.gz katalog

Po pierwsze to gzip nie archwizuje tylko kompresuje. Po drugie,

Nie działa, bo gzip nie wie co ma kompresować. Powinno to wyglądać tak.

tar rvfp - plik_źródłowy | gzip > plik_wynikowy.tar.gz

Tak poza tym, nie trzeba korzystać z potoku.

tar -rvzfp plik_wynikowy.tar.gz plik_źródłowy

Dzięki za pomoc, ale czy da się dodać sam katalog bez całego drzewa katalogowego?

 

 

path/to/target  - tak, żeby sam “target” dodał się do archiwum bez katalogu “path” i “to” nie przechodząc do katalogu “to”

No oczywiście, że się da.

Ok, znalazłem rozwiązanie, ale mam problem z jego zastosowaniem w moim przypadku o tuż stosuję polecenie:

$ find /home/user/backup/backup/Backup/temp/db_1_2014-03-21 -path '*/.*' -prune -o -type f -print |zip -9ry /home/user/backup/backup/Backup/temp/ftp_one.zip . -i /home/user/backup/backup/Backup/temp/ftp_one -@

Postanowiłem stosować archiwizację zip ze względu  wydajnościowych (ponoć szybsza). Wynik powyższego polecenia:  zip error: Nothing to do! 

gdzie popełniam błąd?.

Dlaczego nie spróbujesz po prostu?

 

find /home/user/backup/backup/Backup/temp/db_1_2014-03-21 -path '*/.*' -prune -o -type f -print -exec zip -9ry /home/user/backup/backup/Backup/temp/ftp_one.zip . -i /home/user/backup/backup/Backup/temp/ftp_one -@ {}\;

Lub bardziej czytelnie.

 

ZIP=$(zip -9ry /home/user/backup/backup/Backup/temp/ftp_one.zip . -i /home/user/backup/backup/Backup/temp/ftp_one -@)
TARGET=/home/user/backup/backup/Backup/temp/
find $TARGET/db_1_2014-03-21 -path '*/.*' -prune -o -type f -print -exec $ZIP {}\;

Wracając do tar, tar archiwizuje pliki, nie katalogi, więc powinieneś wskazywyać pliki w katalogu, który Cię interesuje. Archiwum możesz potem skompresować dowolnym kompresorem, nie musi to być Gzip czy Bzip2.

Dzięki wielkie za pomoc.