您好,登錄后才能下訂單哦!
本篇內容介紹了“Linux中如何在Deepin同時解壓多個壓縮檔案”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
在Linux系統中Deepin命令行上可以對文件進行解壓,使用Deepin命令行還可以同時對多個tarball 文件解壓。那么Linux中怎么在Deepin同時解壓多個壓縮檔案呢?
$ ls
backup1.tar backup2.tar backup3.tar
我們需要一起把它們全部解壓,該如何做呢?
我們先來簡要講解一下 tar 的用法.tar 命令原用于從磁帶設備讀寫文件(tar 即是 Tape ARchiver 的縮略)。我們只能指定要放入壓縮檔案或要解壓出的文件名(如 tar x myfineonthe.tape)。可以使用 -f 選項可以告訴 tar 該檔案不是在某個磁帶上而是在文件中。該選項只接受一個參數——壓縮檔案的文件名。所有其它(后面的)參數都被看作上面提到的壓縮文件的一部分。
tar -x -f backup.tar myfile.txt
# 或者使用下面更常見的句法
tar xf backup.tar myfile.txt
現在回到我們之前的問題上來:同時解壓當前目錄下面的 backup1.tar backup2.tar backup3.tar 三個文件。可能會有朋友要使用 tar xf *.tar,我們來看看其執行結果:
$ tar xf *.tar
tar: backup2.tar: Not found in archive
tar: backup3.tar: Not found in archive
tar: Exiting with failure status due to previous errors
這是怎么回事?Shell 通過匹配文件名將 *.tar 替換,上面的一行實際等同于:
tar xf backup1.tar backup2.tar backup3.tar
從我們之前對于 tar 的用法解釋中可知,我們在這里使用的命令的含義為“從壓縮檔案 backup1.tar 中解壓出 backup2.tar 和 backup3.tar”。只有在 backup1.tar 這個壓縮檔案中有相應的文件名,才能執行成功。
解決辦法:從壓縮檔案中將文件一一解壓。
我們使用的是一個 UNIX shell (Bash),可以用循環來實現:
for tarname in *.tar; do
tar xf “$tarname”
done
下面說一下循環和 for-循環兩個基本概念。循環是用來在滿足某個條件之前重復其內部的代碼的一種結構。滿足該條件時循環即停止,其外部的代碼會繼續執行.for-循環是將一變量逐次設置為一個列表中的各個值,并重復直到該列表用完的一類循環結構。
在這里,for-循環會將匹配 *.tar 的文件名作為參數反復調用執行 tar xf.這樣我們就將壓縮檔案逐一“自動地”解壓出來。
還有另一種很常見的檔案格式是 ZIP.解壓 ZIP 文件的命令是 unzip.這里也有同樣的問題:unzip 只接受一個選項來指定 ZIP 文件。
可以用同樣的方法來解決:
for zipfile in *.zip; do
unzip “$zipfile”
done
對于 unzip 命令還有另一種做法:它可以讀入類似 shell 的樣式(pattern)來指定 ZIP 文件名。為防止 shell 對于這些樣式的解釋,需要使用引號.unzip(而非 shell)在這里會解釋 *.zip:
unzip “*.zip”
# 還可以用下面這種看起來更明晰的做法:
unzip \*.zip
“Linux中如何在Deepin同時解壓多個壓縮檔案”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。