溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux上無痛文件提取的示例分析

發(fā)布時間:2021-10-25 11:10:03 來源:億速云 閱讀:112 作者:小新 欄目:系統(tǒng)運(yùn)維

小編給大家分享一下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è)資訊頻道!

向AI問一下細(xì)節(jié)

免責(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)容。

AI