หลายครั้งที่ฉันต้องแยกไฟล์เก็บถาวรต่าง ๆ โดยใช้คอมม่าบรรทัด แต่ไม่ใช่ทุกครั้งที่ฉันจำคำสั่งที่แน่นอนสำหรับไฟล์เก็บถาวรประเภทใดก็ได้ ดังนั้นฉันต้องเสียเวลาและค้นหาอีกครั้ง ฉันจะหลีกเลี่ยงสิ่งนี้ได้อย่างไร
หลายครั้งที่ฉันต้องแยกไฟล์เก็บถาวรต่าง ๆ โดยใช้คอมม่าบรรทัด แต่ไม่ใช่ทุกครั้งที่ฉันจำคำสั่งที่แน่นอนสำหรับไฟล์เก็บถาวรประเภทใดก็ได้ ดังนั้นฉันต้องเสียเวลาและค้นหาอีกครั้ง ฉันจะหลีกเลี่ยงสิ่งนี้ได้อย่างไร
คำตอบ:
dtrx
คำสั่งเป็นเพื่อนของคุณในเรื่องที่
มันจะบีบอัดไฟล์เก็บถาวรใด ๆ โดยคาดเดาชนิดของมัน นอกจากนี้ยังจะทำให้แน่ใจว่าไฟล์ที่คุณคลายการบีบอัดจะถูกวางในไดเรกทอรีใหม่ หลีกเลี่ยงการทำให้ไฟล์ยุ่งเหยิงทำงานกับไฟล์จำนวนมาก
sudo aptitude install dtrx
dtrx stuff.zip
คุณสามารถใช้เชลล์สคริปต์ต่อไปนี้ (ฉันตั้งชื่อมัน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
basename $arg
อาจช่วยได้
atool
ด้วยซึ่งคุณสามารถดึง / แพ็คหลายรูปแบบ: เห็นคำตอบที่ฉันให้สำหรับคำถามนี้: บรรทัดคำสั่งเก็บผู้จัดการ-extracter คำถามนี้เป็นคำถามที่ซ้ำกันของคำถามนั้นดังนั้นจึงอาจมีการรวมกัน