ฉันต้องการที่จะรู้ว่าคำสั่งที่ใช้ในการ gunzip ไฟล์ทั้งหมดในไดเรกทอรีเป้าหมายซ้ำคืออะไร? ฉันพยายามใช้คำสั่ง unzip แต่มันไม่ทำงาน
ฉันลองคำสั่งจากUnzip ไฟล์ zip ทั้งหมดในโฟลเดอร์ปลายทางหรือไม่?
ฉันต้องการที่จะรู้ว่าคำสั่งที่ใช้ในการ gunzip ไฟล์ทั้งหมดในไดเรกทอรีเป้าหมายซ้ำคืออะไร? ฉันพยายามใช้คำสั่ง unzip แต่มันไม่ทำงาน
ฉันลองคำสั่งจากUnzip ไฟล์ zip ทั้งหมดในโฟลเดอร์ปลายทางหรือไม่?
คำตอบ:
ใช้คำสั่งด้านล่าง แทนที่<path_of_your_zips>
ด้วยพา ธ ไปยังไฟล์ ZIP ของคุณและ<out>
ด้วยโฟลเดอร์ปลายทางของคุณ:
สำหรับไฟล์ GZ
find <path_of_your_zips> -type f -name "*.gz" -exec tar xf {} -C <out> \;
หรือ
find <path_of_your_zips> -type f -name "*.gz" -print0 | xargs -0 -I{} tar xf {} -C <out>
สำหรับไฟล์ ZIP
find <path_of_your_zips> -type f -name "*.zip" -exec unzip {} -d <out> \;
หรือ
find <path_of_your_zips> -type f -name "*.zip" -print0 | xargs -0 -I{} unzip {} -d <out>
-exec
ชอบfind . -type f -name "*.gz" -exec tar xzf {} -C <out> \;
?
tar: This does not look like a tar archive
gunzip
มี-r
ตัวเลือก จากman gunzip
:
-r --recursive
Travel the directory structure recursively. If any of the
file names specified on the command line are directories, gzip
will descend into the directory and compress all the files it finds
there (or decompress them in the case of gunzip ).
ดังนั้นหากคุณต้องการgunzip
ไฟล์บีบอัดทั้งหมด ( gunzip
ปัจจุบันสามารถคลายไฟล์ที่สร้างโดย gzip, zip, compress, compress -H หรือ pack) ภายในไดเรกทอรี/foo/bar
และไดเรกทอรีย่อยทั้งหมด:
gunzip -r /foo/bar
นี้จะจัดการชื่อไฟล์ด้วยช่องว่างด้วย