Mam duży plik tar, który jest zajęty przesyłaniem FTP ze zdalnego systemu do naszego lokalnego systemu.
Chcę wiedzieć, czy można rozpocząć rozpakowywanie, powiedzmy 50 plików jednocześnie, aby pliki te mogły być przetwarzane podczas przesyłania.
Oto szczegółowe wyjaśnienie, w jaki sposób można wyodrębnić określone pliki z archiwum. W szczególności GNU tar może być użyty do wyodrębnienia jednego lub więcej plików z tarballa. Aby wyodrębnić określonych członków archiwum, podaj ich dokładne nazwy jako argumenty.
Na przykład:
tar --extract --file={tarball.tar} {file}
Możesz także wyodrębnić pliki, które pasują do określonego wzorca globowania (symbole wieloznaczne). Na przykład, aby wyodrębnić z cbz.tar wszystkie pliki zaczynające się od pic, bez względu na ich prefiks katalogu, możesz wpisać:
tar -xf cbz.tar --wildcards --no-anchored 'pic*'
Aby wyodrębnić wszystkie pliki php, wprowadź:
tar -xf cbz.tar --wildcards --no-anchored '*.php'
Gdzie,
-x
: instruuje tar, aby wyodrębnił pliki.
-f
: określa nazwę pliku / nazwy pliku tarball.
-v
: Verbose (pokaż postęp podczas rozpakowywania plików).
-j
: filtruj archiwum przez bzip2, użyj do dekompresji plików .bz2.
-z
: filtruj archiwum przez gzip, użyj do dekompresji plików .gz.
--wildcards
: instruuje tar, aby traktował argumenty wiersza poleceń jako wzorce globowania.
--no-anchored
: informuje, że wzorce dotyczą nazw członków po dowolnym znaku / separatorze.
-t
listy, dopóki archiwum nie zostanie w pełni pobrane. W dowolnym momencie na liście wyświetlane są tylko nazwy plików, które zostały lub są przenoszone, tj. nie pełna lista; dopóki nie zostanie w pełni pobrany.Nie próbowałem tego sam, ale co z tym:
Tar wysyła linię do STDOUT dla każdego wyodrębnionego pliku, a następnie
head
polecenie zabije potok po 50 liniach. Po śmierci fajki spodziewałbym się, że smoła też umrze.źródło
head
. Pozwól mi zmienić moją odpowiedź.tar
może wyodrębnić więcej niż 50 plików przed SIGPIPEd, aw szczególności może wyodrębnić ostatni, niekompletny plik.daje ci całą listę plików w
tarfile.tar
To polecenie przywraca
fileToRestore
Aby rozpakować wiele plików, ale nie wszystkie, możesz:
Umieszczasz wszystkie listy plików z
tarfile.tar
wtar.txt
Teraz
tar.txt
ma całą listę plikówtarfile.tar
i możesz zostawić tylko pliki, które chcesz przywrócić lub z głową ...Możesz umieścić te linie w pliku
Lub pełny plik skryptu:
I to wszystko
źródło