Làm cách nào để gunzip vào thư mục đích khác với thư mục hiện tại?
Điều này đã không làm việc:
gunzip *.gz /putthemhere/
Làm cách nào để gunzip vào thư mục đích khác với thư mục hiện tại?
Điều này đã không làm việc:
gunzip *.gz /putthemhere/
Câu trả lời:
Yêu cầu gunzip
xuất ra đầu ra tiêu chuẩn và chuyển hướng đến một tệp trong thư mục đó:
gunzip -c file.gz > /THERE/file
zcat
là một phím tắt cho gunzip -c
.
Nếu bạn muốn gunzip nhiều tệp lặp trên tất cả các tệp:
for f in *.gz; do
STEM=$(basename "${f}" .gz)
gunzip -c "${f}" > /THERE/"${STEM}"
done
(ở đây basename
được sử dụng để có được một phần của tên tệp mà không cần phần mở rộng)
Nếu bạn cần trích xuất một tệp duy nhất và ghi vào thư mục sở hữu gốc, thì hãy sử dụng sudo dd
:
zcat filename.conf.gz | sudo tee /etc/filename.conf >/dev/null
Nếu tệp đến từ một nguồn từ xa (ví dụ: ssh, curl https, v.v.), bạn có thể làm như thế này:
ssh remoteserver cat filename.conf.gz | zcat | sudo tee /etc/filename.conf >/dev/null
(Lưu ý rằng các ví dụ này chỉ hoạt động cho một tệp duy nhất , không giống như ví dụ * .gz, đó là tất cả các tệp được nén trong thư mục.)
sudo tee $filename >/dev/null
là một thành ngữ hơn một chút so với sử dụng dd
.
Bạn có thể thử với> để chuyển hướng kết quả đến nơi bạn muốn.