您好,登錄后才能下訂單哦!
小編給大家分享一下Linux上無痛文件提取的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
它們有很多格式,從 .gz 到 .tbz2,這些文件的命名方式都各有一些不同。當(dāng)然,你可以記住所有從存檔中提取文件的各種命令以及它們的選項(xiàng),但是你也可以將所有經(jīng)驗(yàn)保存到腳本中,而不再擔(dān)心細(xì)節(jié)。
在本文中,我們將一系列提取命令組合成一個腳本,它會調(diào)用適當(dāng)?shù)拿罡鶕?jù)文檔名提取文件的內(nèi)容。該腳本首先以一些命令來驗(yàn)證是否已經(jīng)提供了一個文件名作為參數(shù),或要求運(yùn)行腳本的人提供文件名。
#!/bin/bash if [ $# -eq 0 ]; then echo -n "filename> " read filename else filename=$1 fi if [ ! -f "$filename" ]; then echo "No such file: $filename" exit $? fi
了解了么?如果未提供任何參數(shù),腳本將提示輸入文件名,如果存在則使用它。然后,它驗(yàn)證文件是否實(shí)際存在。如果不是,那么腳本退出。
下一步是使用 bash 的 case 語句根據(jù)存檔文件的名稱調(diào)用適當(dāng)?shù)奶崛∶睢τ谄渲心承┪募愋?例如 .bz2),也可以使用除 tar 之外的其它命令,但是對于每種文件命名約定,我們僅包含一個提取命令。因此,這是帶有各種存檔文件名的 case 語句:
case $filename in *.tar) tar xf $filename;; *.tar.bz2) tar xjf $filename;; *.tbz) tar xjf $filename;; *.tbz2) tar xjf $filename;; *.tgz) tar xzf $filename;; *.tar.gz) tar xzf $filename;; *.gz) gunzip $filename;; *.bz2) bunzip2 $filename;; *.zip) unzip $filename;; *.Z) uncompress $filename;; *) echo "No extract option for $filename" esac
如果提供給腳本的文件擴(kuò)展名與腳本已知的擴(kuò)展名都不匹配,那么會發(fā)出 “No extract option for $filename” 的消息。如果缺少你使用的任何存檔類型,只需將它們與所需的提取命令一起添加即可。
將 bash 頭添加到腳本頂部,使其可執(zhí)行,然后就可以開始了。
#!/bin/bash if [ $# -eq 0 ]; then echo -n "filename> " read filename else filename=$1 fi if [ ! -f "$filename" ]; then echo "No such file: $filename" exit $? fi case $filename in *.tar) tar xf $filename;; *.tar.bz2) tar xjf $filename;; *.tbz) tar xjf $filename;; *.tbz2) tar xjf $filename;; *.tgz) tar xzf $filename;; *.tar.gz) tar xzf $filename;; *.gz) gunzip $filename;; *.bz2) bunzip2 $filename;; *.zip) unzip $filename;; *.Z) uncompress $filename;; *.rar) rar x $filename ;; *)
如果你希望腳本在提取文件時顯示內(nèi)容,請將詳細(xì)選項(xiàng)(-v)添加到每個命令參數(shù)字符串中:
#!/bin/bash if [ $# -eq 0 ]; then echo -n "filename> " read filename else filename=$1 fi if [ ! -f "$filename" ]; then echo "No such file: $filename" exit $? fi case $filename in *.tar) tar xvf $filename;; *.tar.bz2) tar xvjf $filename;; *.tbz) tar xvjf $filename;; *.tbz2) tar xvjf $filename;; *.tgz) tar xvzf $filename;; *.tar.gz) tar xvzf $filename;; *.gz) gunzip -v $filename;; *.bz2) bunzip2 -v $filename;; *.zip) unzip -v $filename;; *.Z) uncompress -v $filename;; *) echo "No extract option for $filename" esac
以上是“Linux上無痛文件提取的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。