วิธีการแตกไฟล์ที่เก็บถาวรทุกประเภทอย่างรวดเร็วจาก command-line?


11

หลายครั้งที่ฉันต้องแยกไฟล์เก็บถาวรต่าง ๆ โดยใช้คอมม่าบรรทัด แต่ไม่ใช่ทุกครั้งที่ฉันจำคำสั่งที่แน่นอนสำหรับไฟล์เก็บถาวรประเภทใดก็ได้ ดังนั้นฉันต้องเสียเวลาและค้นหาอีกครั้ง ฉันจะหลีกเลี่ยงสิ่งนี้ได้อย่างไร


1
ดูเพิ่มเติมatoolด้วยซึ่งคุณสามารถดึง / แพ็คหลายรูปแบบ: เห็นคำตอบที่ฉันให้สำหรับคำถามนี้: บรรทัดคำสั่งเก็บผู้จัดการ-extracter คำถามนี้เป็นคำถามที่ซ้ำกันของคำถามนั้นดังนั้นจึงอาจมีการรวมกัน

คำตอบ:


15

dtrxคำสั่งเป็นเพื่อนของคุณในเรื่องที่

มันจะบีบอัดไฟล์เก็บถาวรใด ๆ โดยคาดเดาชนิดของมัน นอกจากนี้ยังจะทำให้แน่ใจว่าไฟล์ที่คุณคลายการบีบอัดจะถูกวางในไดเรกทอรีใหม่ หลีกเลี่ยงการทำให้ไฟล์ยุ่งเหยิงทำงานกับไฟล์จำนวนมาก

ติดตั้ง

sudo aptitude install dtrx

การใช้

dtrx stuff.zip

11

คุณสามารถใช้เชลล์สคริปต์ต่อไปนี้ (ฉันตั้งชื่อมันextractและฉันใส่ไว้ใน~/bin):

#! / bin / ทุบตี

ถ้า [$ # -lt 1];
  echo "การใช้งาน:` basename $ 0` FILES "
  ทางออก 1
Fi

# ฉันพบฟังก์ชันต่อไปนี้ที่https://unix.stackexchange.com/a/168/37944 
# ซึ่งฉันปรับปรุงให้ดีขึ้นเล็กน้อย ขอบคุณมากสำหรับsydoสำหรับความคิดนี้
ดึง () {
    สำหรับหาเรื่องใน $ @; ทำ
        ถ้า [-f $ arg]; แล้วก็
            กรณี $ arg
                * .tar.bz2) tar xjf $ arg ;;
                * .tar.gz) tar xzf $ arg ;;
                * .bz2) bunzip2 $ arg ;;
                * .gz) gunzip $ arg ;;
                * .tar) tar xf $ arg ;;
                * .tbz2) tar xjf $ arg ;;
                * .tgz) tar xzf $ arg ;;
                * .zip) unzip $ arg ;;
                * .Z) คลายการบีบอัด $ arg ;;
                * .rar) rar x $ arg ;; # 'rar' จะต้องติดตั้ง
                * .jar) jar -xvf $ arg ;; # 'jdk' จะต้องติดตั้ง
                *) echo "'$ arg' ไม่สามารถดึงผ่านทางแยก ()" ;;
            esac
        อื่น
            echo "'$ arg' ไม่ใช่ไฟล์ที่ถูกต้อง"
        Fi
    เสร็จแล้ว
}

แยก $ @

อย่าลืมทำให้สคริปต์ใช้งานได้:

chmod +x ~/bin/extract

การใช้งาน:

แยกไฟล์ file_1 file_2 ... file_n 

ทำได้ดีนี่. ฉันพบว่า zip บางครั้งแยกในไดเรกทอรีปัจจุบันเมื่อฉันต้องการมันเป็นไดเรกทอรีย่อยของตัวเอง การใช้ unzip -d basename $argอาจช่วยได้
crafter
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.