小編給大家分享一下Linux上無痛文件提取的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
公司主營業(yè)務(wù):成都做網(wǎng)站、成都網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出札達(dá)免費(fèi)做網(wǎng)站回饋大家。
它們有很多格式,從 .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)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!