Jak mogę strzelać do katalogu docelowego innego niż bieżący?
To nie zadziałało:
gunzip *.gz /putthemhere/
Jak mogę strzelać do katalogu docelowego innego niż bieżący?
To nie zadziałało:
gunzip *.gz /putthemhere/
Odpowiedzi:
Zapytać gunzip
do wyjścia na standardowe wyjście i przekierowania do pliku w tym katalogu:
gunzip -c file.gz > /THERE/file
zcat
jest skrótem do gunzip -c
.
Jeśli chcesz gunzipować wiele plików, iteruj wszystkie pliki:
for f in *.gz; do
STEM=$(basename "${f}" .gz)
gunzip -c "${f}" > /THERE/"${STEM}"
done
(tutaj basename
służy do pobrania części nazwy pliku bez rozszerzenia)
Jeśli chcesz wyodrębnić pojedynczy plik i napisz do katalogu należącego do roota, a następnie użyj sudo dd
:
zcat filename.conf.gz | sudo tee /etc/filename.conf >/dev/null
Jeśli plik pochodzi ze zdalnego źródła (np. Ssh, curl https itp.), Możesz to zrobić w ten sposób:
ssh remoteserver cat filename.conf.gz | zcat | sudo tee /etc/filename.conf >/dev/null
(Zauważ, że te przykłady działają tylko dla a pojedynczy plik, w przeciwieństwie do przykładu * .gz, który jest wszystkimi plikami gzip w katalogu.)
sudo tee $filename >/dev/null
jest trochę bardziej idiomatyczny niż używanie dd
.
Możesz spróbować użyć & gt; przekierować wynik do żądanego miejsca.