userrpl
(userrpl)
19 Marzec 2014 15:19
#1
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?
ra-v
(ra-v)
19 Marzec 2014 20:38
#2
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
roobal
(roobal)
19 Marzec 2014 23:44
#3
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
userrpl
(userrpl)
20 Marzec 2014 21:29
#4
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”
roobal
(roobal)
20 Marzec 2014 22:40
#5
No oczywiście, że się da.
userrpl
(userrpl)
21 Marzec 2014 09:20
#6
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?.
roobal
(roobal)
21 Marzec 2014 15:26
#7
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.