Dlaczego wszystkie opinie? Jest więcej opcji niż tylko -C (i być może jego wersja tego nie zapewnia).
Alfe,
2
Stack Overflow to strona z pytaniami dotyczącymi programowania i programowania. To pytanie wydaje się nie na temat, ponieważ nie dotyczy programowania ani programowania. Zobacz o jakie tematy mogę pytać tutaj w Centrum pomocy. Być może lepiej byłoby zapytać Super User lub Unix & Linux Stack Exchange .
jww
@jww Podczas gdy widzę twój punkt, mamy również tagi nazwane tari gzwokół tego forum. Rozpakowywanie tarballa do określonego katalogu może być częścią skryptu powłoki, a zatem częścią programowania. Wydaje mi się, że tego rodzaju pytanie można zadać na obu forach.
Alfe
Odpowiedzi:
319
Możesz użyć tej opcji -C(lub --directoryjeśli wolisz długie opcje), aby podać docelowy katalog na wypadek, gdybyś używał wersji GNU tar. Katalog powinien istnieć:
mkdir foo
tar -xzf bar.tar.gz -C foo
Jeśli nie używasz tarfunkcji rozpakowywania do określonego katalogu, możesz po prostu cdprzejść do katalogu docelowego przed wywołaniem tar; wtedy oczywiście musisz podać pełną ścieżkę do swojego archiwum. Możesz to zrobić w skorupie zakresu, aby uniknąć wpływu na otaczający skrypt:
mkdir foo
(cd foo; tar -xzf ../bar.tar.gz) # instead of ../ you can use an absolute path as well
Lub, jeśli ani ścieżka bezwzględna, ani ścieżka względna do pliku archiwum nie jest odpowiednia, możesz także użyć tego do nazwania archiwum poza podpowłokę zakresu:
Można użyć dla pętli rozpakować wielu plików .tar.gz do innego folderu. Poniższy kod pobierze / destination / folder / path jako argument do skryptu i rozpakuje wszystkie pliki .tar.gz obecne w bieżącej lokalizacji w / destination / folder / path.
if [ $# -ne 1 ];
then
echo "invalid argument/s"
echo "Usage: ./script-file-name.sh /target/directory"
exit 0
fi
for file in *.tar.gz
do
tar -zxvf "$file" --directory $1
done
tar
igz
wokół tego forum. Rozpakowywanie tarballa do określonego katalogu może być częścią skryptu powłoki, a zatem częścią programowania. Wydaje mi się, że tego rodzaju pytanie można zadać na obu forach.Odpowiedzi:
Możesz użyć tej opcji
-C
(lub--directory
jeśli wolisz długie opcje), aby podać docelowy katalog na wypadek, gdybyś używał wersji GNUtar
. Katalog powinien istnieć:Jeśli nie używasz
tar
funkcji rozpakowywania do określonego katalogu, możesz po prostucd
przejść do katalogu docelowego przed wywołaniemtar
; wtedy oczywiście musisz podać pełną ścieżkę do swojego archiwum. Możesz to zrobić w skorupie zakresu, aby uniknąć wpływu na otaczający skrypt:Lub, jeśli ani ścieżka bezwzględna, ani ścieżka względna do pliku archiwum nie jest odpowiednia, możesz także użyć tego do nazwania archiwum poza podpowłokę zakresu:
źródło
lub z GNU tar
źródło
gzip
w przypadku, gdy tar nie zrozumie spakowanych archiwów.Wyodrębnia plik myArchive.tar do katalogu / destinationDirectory
Polecenia:
źródło
Można użyć dla pętli rozpakować wielu plików .tar.gz do innego folderu. Poniższy kod pobierze / destination / folder / path jako argument do skryptu i rozpakuje wszystkie pliki .tar.gz obecne w bieżącej lokalizacji w / destination / folder / path.
źródło