การคว้าส่วนขยายในชื่อไฟล์
ฉันจะรับนามสกุลไฟล์จาก 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ถ้าเป็นเช่นนั้นส่วนขยายที่ควรจะเป็น