ฉันจะรับนามสกุลไฟล์จาก bash ได้อย่างไร นี่คือสิ่งที่ฉันพยายาม:
filename=`basename $filepath`
fileext=${filename##*.}
โดยการทำที่ฉันจะได้รับการขยายตัวของbz2
จากเส้นทางแต่ฉันมีปัญหากับเส้นทาง/dir/subdir/file.bz2
/dir/subdir/file-1.0.tar.bz2
ฉันต้องการโซลูชันที่ใช้ bash เท่านั้นโดยไม่มีโปรแกรมภายนอกถ้าเป็นไปได้
extract path_to_file
เพื่อให้คำถามของฉันล้างผมก็สร้างสคริปต์ทุบตีเพื่อแยกเก็บใดก็ตามเพียงแค่คำสั่งเดียวของ วิธีการแตกไฟล์จะถูกกำหนดโดยสคริปต์โดยดูประเภทการบีบอัดหรือการเก็บถาวรซึ่งอาจเป็น. tar.gz, .gz, .bz2 เป็นต้นฉันคิดว่านี่ควรเกี่ยวข้องกับการจัดการสตริงตัวอย่างเช่นถ้าฉันได้รับการขยาย.gz
แล้ว ควรตรวจสอบว่ามันมีสตริง.tar
ก่อน.gz
- .tar.gz
ถ้าเป็นเช่นนั้นส่วนขยายที่ควรจะเป็น
.tar.bz2