polecenie gzip unix z poleceniem tar

-1

Chcę skompresować więcej niż jeden plik za pomocą gzip, ale kiedy go rozpakuję, powinienem pobrać wiele plików.

Próbowałem tar z zip, ale tar utworzyłem dodatkowe foldery, których nie chcę.

Pliki, które chcę skompresować to cp1.txt, cp2.txt, cp3.txt.

Po rozpakowaniu pliki powinny być cp1.txt, cp2.txt, cp3.txt

Ale używając polecenia tar z gzip tworzy pliki takie jak

/bbpre/spool/COPY/ZIP/cp1.txt,cp2.txt,cp3.txt

Nie chcę, /bbpre/spool/COPY/ZIP/chcę tylko pliki.

Nitin
źródło
Czy możesz edytować swoje pytanie, aby uwzględnić polecenia używane do kompresowania i rozpakowywania plików?
Burgi
Ugh. Nienawidzę używanej tutaj terminologii. Nie kompresujesz plików za pomocą gzip. Gzipujesz za pomocą gzip. Jeśli kompresujesz pliki, robisz to za pomocą polecenia, takiego jak „zip” (które zwykle odnosi się do Info-Zip), lub może innego polecenia (takiego jak 7za). gzip obsługuje tylko jeden plik na archiwum .gz. Obejściem tego ograniczenia jest użycie innego formatu do zarchiwizowania wielu plików, a następnie kompresowanie tego archiwum przez gzip. W Uniksie (zauważam, że to pytanie ma znacznik Unix), najbardziej tradycyjnym formatem używanym do tego zadania jest tar.
TOOGAM

Odpowiedzi:

1

Przez tar podczas ekstrakcji możesz usunąć pierwsze n wiodących składników nazwy pliku / ścieżki.

W twoim przypadku, jeśli zrobiłeś tar z plików:

/bbpre/spool/COPY/ZIP/cp1.txt  
/bbpre/spool/COPY/ZIP/cp2.txt
/bbpre/spool/COPY/ZIP/cp3.txt

przez wyodrębnienie z strip-componentsflagą możesz usunąć niepożądane poziomy nazw plików ścieżek:

tar -xvzf yourtar.tar --strip-components=4

usunie /bbpre/spool/COPY/ZIPi umieści cp1.txt, cp2.txt, cp3.txtw bieżącym katalogu roboczym.

lgaggini
źródło
-1

Jeśli dobrze cię rozumiem, chcesz wziąć wiele plików i skompresować je jednocześnie, a następnie rozpakować z powrotem do wielu plików jednocześnie. Oto jak to zrobić:

$ touch 1.txt 2.txt 3.txt
$ gzip 1.txt 2.txt 3.txt
$ gzip -d 1.txt.gz 2.txt.gz 3.txt.gz

Właśnie próbowałem tego na maszynie wirtualnej i utworzyłem 3 pliki, rozpakowałem je osobno, a następnie rozpakowałem oddzielnie.

pochodnia
źródło
poniżej polecenia tworzenia oddzielnych plików zip chcę jeden plik zip, a kiedy rozpakuję, chcę to osobne pliki $ gzip 1.txt 2.txt 3.txt
Nitin
Tak, tak radził mój post. Czy to zadziałało dla ciebie?
pochodnia
nie, moim wymaganiem jest utworzenie jednego pliku zip dla wszystkich plików, a kiedy go rozpakuję, powinienem pobrać wszystkie pliki
Nitin
Więc chcesz spakować katalog z dowolnymi plikami wewnątrz, a kiedy rozpakujesz ponownie te pliki?
pochodnia
1
Czy istnieje powód, dla którego nie można utworzyć katalogu, umieścić plików w tym katalogu, a następnie spakować katalog?
pochodnia