Bạn có thể sử dụng tập lệnh shell sau (tôi đặt tên cho nó extract
và tôi đặt nó vào ~/bin
):
#! / bin / bash
nếu [$ # -lt 1]; thì
echo "Cách sử dụng:` tên cơ sở $ 0` PHIM "
thoát 1
fi
# Tôi đã tìm thấy chức năng sau tại https://unix.stackexchange.com/a/168/37944
# mà tôi đã cải thiện nó một chút. Rất cám ơn sydo cho ý tưởng này.
trích xuất () {
cho arg trong $ @; làm
nếu [-f $ arg]; sau đó
trường hợp $ arg trong
* .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) giải nén $ arg ;;
* .Z) giải nén $ arg ;;
* .rar) rar x $ arg ;; # 'rar' phải được cài đặt
* .jar) bình -xvf $ arg ;; # 'jdk' phải được cài đặt
*) echo "'$ arg' không thể được trích xuất thông qua trích xuất ()" ;;
esac
khác
echo "'$ arg' không phải là tệp hợp lệ"
fi
làm xong
}
trích xuất $ @
Đừng quên làm cho tập lệnh thực thi:
chmod +x ~/bin/extract
Sử dụng:
giải nén file_1 file_2 ... file_n
atool
, trong đó bạn có thể trích xuất / đóng gói nhiều định dạng: xem câu trả lời tôi đã đưa ra cho câu hỏi này: lệnh-line-archive-manager-extracter . Câu hỏi này cũng là một bản sao của câu hỏi đó, vì vậy có lẽ chúng nên được hợp nhất.