Mam katalog. Zawiera około 500 KB plików .gz.
Jak mogę rozpakować wszystkie pliki .gz w tym katalogu i usunąć pliki .gz?
Mam katalog. Zawiera około 500 KB plików .gz.
Jak mogę rozpakować wszystkie pliki .gz w tym katalogu i usunąć pliki .gz?
Odpowiedzi:
To powinno wystarczyć:
gunzip *.gz
find "$dir" -maxdepth 1 -name '*.gz' -print0 | xjobs -0 -l50 -v2 gunzip
ograniczyć wystąpienia do 50 argumentów każdy (i uruchomić je równolegle).
Oczywiście jest na to więcej niż jeden sposób.
# This will find files recursively (you can limit it by using some 'find' parameters.
# see the man pages
# Final backslash required for exec example to work
find . -name '*.gz' -exec gunzip '{}' \;
# This will do it only in the current directory
for a in *.gz; do gunzip $a; done
Jestem pewien, że są też inne sposoby, ale ten jest prawdopodobnie najprostszy.
Aby go usunąć, po prostu zrób rm -rf *.gz
w odpowiednim katalogu
for foo in *.gz
do
tar xf "$foo"
rm "$foo"
done
Próbować:
ls -1 | grep -E "\.tar\.gz$" | xargs -n 1 tar xvfz
Więc spróbuj:
ls -1 | grep -E "\.tar\.gz$" | xargs -n 1 rm
Spowoduje to rozpakowanie wszystkich plików .tar.gz w bieżącym katalogu, a następnie usunięcie wszystkich plików .tar.gz. Jeśli chcesz uzyskać wyjaśnienie, znak „|” pobiera standardowe wyjście polecenia przed nim i używa go jako wejścia standardowego polecenia po nim. Użyj „man command ” bez cudzysłowów, aby dowiedzieć się, co robią te polecenia i argumenty. Możesz też poszukać informacji online.
.gz
Plik nie musi być koniecznie archiwum. W takim przypadku nie miałbyś nic do usunięcia po wykonaniugzip -d file.gz
.