Na przykład mam 1000 plików tar. (n0001.tar ~ n1000.tar) Chcę rozpakować każdy plik w każdej nazwie pliku. (zawartość n0001.tar w folderze n0001 /)
Jak mogę to zrobić w jednym poleceniu terminalu?
Zakładam, że to polecenie można zmodyfikować.
for F in alcatelS*.tar; do
tar -xvf "$F"
done
Odpowiedzi:
0 dla odpowiedzi № 1Możesz użyć rozszerzenia parametrów, aby usunąć rozszerzenie z nazwy pliku:
for F in alcatelS*.tar; do
dir=${F%.tar}
( mkdir "$dir" && cd "$dir" && tar -xvf ../"$F" )
done
The cd
dzieje się w podpowłoce (...)
aby katalog roboczy nie został zmieniony dla pętli.