gunzip ไฟล์. gz ทั้งหมดในไดเรกทอรี


24

ฉันมีไดเรกทอรีที่มี.txt.gzไฟล์จำนวนมาก(ที่ชื่อไม่เป็นไปตามรูปแบบเฉพาะ)

วิธีที่ง่ายที่สุดสำหรับgunzipพวกเขาคืออะไร? ฉันต้องการที่จะรักษาชื่อเดิมของพวกเขาเพื่อให้พวกเขาไปจากwhatevz.txt.gzการwhatevz.txt

คำตอบ:


42

แค่นี้ล่ะ

$ gunzip *.txt.gz

gunzip จะสร้างไฟล์ gunzipped โดยไม่มี .gzคำต่อท้ายและลบไฟล์ดั้งเดิมตามค่าเริ่มต้น (ดูรายละเอียดด้านล่าง) *.txt.gzจะถูกขยายโดยเชลล์ของคุณไปยังไฟล์ทั้งหมดที่ตรงกัน

บิตสุดท้ายนี้จะทำให้คุณเดือดร้อนหากขยายไปยังรายการไฟล์ที่ยาวมาก ในกรณีนั้นให้ลองใช้findและ-execทำงานให้คุณ


จากหน้าคนgzip(1):

gunzip takes a list of files on its command line and  replaces  each  file
whose  name  ends  with  .gz, -gz, .z, -z, or _z (ignoring case) and which
begins with the correct magic number with an uncompressed file without the
original  extension.

หมายเหตุเกี่ยวกับ 'ชื่อเดิม'

gzip สามารถจัดเก็บและกู้คืนชื่อไฟล์ที่ใช้ในเวลาบีบอัด แม้ว่าคุณจะเปลี่ยนชื่อไฟล์ที่ถูกบีบอัด แต่คุณก็แปลกใจที่พบว่าไฟล์ดังกล่าวคืนสู่ชื่อเดิมอีกครั้ง

จาก manz gzip:

โดยค่าเริ่มต้น gzip จะเก็บชื่อไฟล์ดั้งเดิมและเวลาประทับในไฟล์บีบอัด สิ่งเหล่านี้ถูกใช้เมื่อทำการแตกไฟล์ด้วย-Nตัวเลือก สิ่งนี้มีประโยชน์เมื่อชื่อไฟล์ที่ถูกบีบอัดถูกตัดทอนหรือเมื่อการประทับเวลาไม่ถูกรักษาไว้หลังจากการถ่ายโอนไฟล์

และชื่อไฟล์เหล่านี้ที่จัดเก็บในข้อมูลเมตายังสามารถดูได้ด้วยfile:

$ echo "foo" > myfile_orig
$ gzip myfile_orig 
$ mv myfile_orig.gz myfile_new.gz 
$ file myfile_new.gz 
myfile_new.gz: gzip compressed data, was "myfile_orig", last modified: Mon Aug  5 08:46:39 2019, from Unix
$ gunzip myfile_new.gz        # gunzip without -N
$ ls myfile_*
myfile_new

$ rm myfile_*
$ echo "foo" > myfile_orig
$ gzip myfile_orig
$ mv myfile_orig.gz myfile_new.gz 
# gunzip with -N
$ gunzip -N myfile_new.gz     # gunzip with -N
$ ls myfile_*
myfile_orig

0

หากคุณต้องการเก็บ.gzไฟล์คุณสามารถใช้สิ่งต่อไปนี้: $ gunzip -c inputfile.gz >outputfile


0

ใช้คำสั่งนี้เพื่อ gunzip (unzip gz ไฟล์) ไฟล์ทั้งหมดในไดเรกทอรีปัจจุบันและเก็บต้นฉบับ:

gunzip -k *.gz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.