Chciałbym się dowiedzieć, jakiego polecenia użyć, aby rekursywnie zamaskować wszystkie pliki w katalogu docelowym? Próbowałem użyć polecenia unzip, ale to nie zadziałało.
Próbowałem z polecenia Rozpakuj wszystkie pliki zip w folderze docelowym?
Chciałbym się dowiedzieć, jakiego polecenia użyć, aby rekursywnie zamaskować wszystkie pliki w katalogu docelowym? Próbowałem użyć polecenia unzip, ale to nie zadziałało.
Próbowałem z polecenia Rozpakuj wszystkie pliki zip w folderze docelowym?
Odpowiedzi:
Za pomocą poniższych poleceń. Zamień <path_of_your_zips>
na ścieżkę do plików ZIP i <out>
na folder docelowy:
Dla plików GZ
find <path_of_your_zips> -type f -name "*.gz" -exec tar xf {} -C <out> \;
lub
find <path_of_your_zips> -type f -name "*.gz" -print0 | xargs -0 -I{} tar xf {} -C <out>
Dla plików ZIP
find <path_of_your_zips> -type f -name "*.zip" -exec unzip {} -d <out> \;
lub
find <path_of_your_zips> -type f -name "*.zip" -print0 | xargs -0 -I{} unzip {} -d <out>
-exec
jak find . -type f -name "*.gz" -exec tar xzf {} -C <out> \;
?
tar: This does not look like a tar archive
gunzip
ma -r
opcję. Od man gunzip
:
-r --recursive
Travel the directory structure recursively. If any of the
file names specified on the command line are directories, gzip
will descend into the directory and compress all the files it finds
there (or decompress them in the case of gunzip ).
Więc jeśli chcesz, aby gunzip
wszystkie skompresowane pliki ( gunzip
obecnie można zdekompresować pliki utworzone przez gzip, zip, kompresuj, kompresuj -H lub spakuj) wewnątrz katalogu /foo/bar
i wszystkich jego podkatalogów:
gunzip -r /foo/bar
Będzie to także obsługiwać nazwy plików ze spacjami.