Làm cách nào để có được phần mở rộng tập tin từ bash? Đây là những gì tôi đã thử:
filename=`basename $filepath`
fileext=${filename##*.}
Bằng cách đó, tôi có thể mở rộng bz2
từ đường dẫn /dir/subdir/file.bz2
, nhưng tôi gặp vấn đề với đường dẫn /dir/subdir/file-1.0.tar.bz2
.
Tôi muốn một giải pháp chỉ sử dụng bash mà không có chương trình bên ngoài nếu có thể.
Để làm rõ câu hỏi của tôi, tôi đã tạo một tập lệnh bash để trích xuất bất kỳ kho lưu trữ đã cho nào chỉ bằng một lệnh duy nhất extract path_to_file
. Làm thế nào để trích xuất các tập tin được xác định bởi kịch bản bằng cách nhìn thấy nén hoặc lưu trữ loại, đó có thể là .tar.gz, .gz, .bz2 vv Tôi nghĩ rằng điều này sẽ liên quan đến chuỗi thao tác, ví dụ nếu tôi nhận được phần mở rộng .gz
sau đó tôi nên kiểm tra xem nó có chuỗi .tar
trước hay không .gz
- nếu vậy, phần mở rộng sẽ là .tar.gz
.
.tar.bz2