ฉันจะ gunzip ไปยังไดเรกทอรีปลายทางที่ไม่ใช่ไดเรกทอรีปัจจุบันได้อย่างไร
สิ่งนี้ไม่ทำงาน:
gunzip *.gz /putthemhere/
ฉันจะ gunzip ไปยังไดเรกทอรีปลายทางที่ไม่ใช่ไดเรกทอรีปัจจุบันได้อย่างไร
สิ่งนี้ไม่ทำงาน:
gunzip *.gz /putthemhere/
คำตอบ:
ขอgunzip
ให้ส่งออกไปยังเอาต์พุตมาตรฐานและเปลี่ยนเส้นทางไปยังไฟล์ในไดเรกทอรีนั้น:
gunzip -c file.gz > /THERE/file
zcat
gunzip -c
เป็นทางลัดสำหรับ
หากคุณต้องการ gunzip หลายไฟล์วนซ้ำทุกไฟล์:
for f in *.gz; do
STEM=$(basename "${f}" .gz)
gunzip -c "${f}" > /THERE/"${STEM}"
done
(ที่นี่basename
ใช้เพื่อรับส่วนของชื่อไฟล์โดยไม่มีนามสกุล)
หากคุณต้องการแยกไฟล์เดียวและเขียนลงในไดเรกทอรีที่เป็นเจ้าของรูทให้ใช้sudo dd
:
zcat filename.conf.gz | sudo tee /etc/filename.conf >/dev/null
หากไฟล์นั้นมาจากแหล่งข้อมูลระยะไกล (เช่น ssh, curl https เป็นต้น) คุณสามารถทำได้ดังนี้:
ssh remoteserver cat filename.conf.gz | zcat | sudo tee /etc/filename.conf >/dev/null
(โปรดทราบว่าตัวอย่างเหล่านี้ใช้ได้กับไฟล์เดียวเท่านั้นซึ่งแตกต่างจากตัวอย่าง * .gz ซึ่งเป็นไฟล์ gzipped ทั้งหมดในไดเรกทอรี)
sudo tee $filename >/dev/null
dd
คุณสามารถลองด้วย> เพื่อเปลี่ยนเส้นทางผลลัพธ์ไปยังสถานที่ที่คุณต้องการ