Linux命令:tar命令批量解压方法总结
生活随笔
收集整理的這篇文章主要介紹了
Linux命令:tar命令批量解压方法总结
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
tar命令批量解壓方法總結(jié)
(2010-05-24 17:48:46) 轉(zhuǎn)載▼標簽: tar批量解壓雜談 | 分類: linux學習 |
由于linux的tar命令不支持批量解壓,所以很多網(wǎng)友編寫了好多支持批量解壓的shell命令,收集了一下,供大家分享:
第一:
for tar in *.tar.gz;
for tar in *.tar.bz2; do tar xvf $tar; done
第二:用tar命令批量解壓某個文件夾下所有的tar.gz文件
ls *.tar.gz | xargs -n1 tar xzvf
第三:find -maxdepth 1 -name "*.bz2"|xargs -i tar xvjf {}
這條命令可解壓當前目錄下的所有bz2文件
批量解壓是比較郁悶的事,以前嘗試各種方法,甚至用腳本循環(huán)語句解壓都不行
現(xiàn)在發(fā)現(xiàn)這條命令可以搞定,maxdepth表示搜索深度,1代表只搜索當前目錄
第四:for?i?in?$(ls?*.tar);do?tar?xvf?$i;done問題:
我想進行批量解壓tar文件,使用tar?-xvf?*.tar會出錯,提示“Not?found?in?archive”。解決方法有很多,比如寫一個腳本之類的。 請問為什么tar不支持這種通配符語法呢?是否有特殊的原因? 我試過gzip就支gzip?-d?*.tar.gz。
回答:
通配符是shell解決的問題
如
tar?-xvf?*.tar
實際上執(zhí)行tar時,tar接收到的是
tar?-xvf?a.tar?b.tar?c.tar?...
如果當前目錄跟本沒有tar的東西,那么tar就收到'*.tar'這個參數(shù)
與win不同,linux所有字符都可以作文件名,也即目錄中不存在著?*.tar這個文件
為了防止?*.tar被shell解釋為a.tar?b.tar?c.tar...
可以給它加個單引號
用tar解開一個Archive時,語法是
tar?-xvf?<tarfile.tar>?<archived_file>
<tarfile.tar>?是選項f所要求的,只能是一個文件,比如myfiles.tar。
<archived_file>?是myfiles.tar所包含的歸了檔的文件中的一個或者多個成員文件。如果是多個,可以用通配符。
先別跟我急,我知道,這些你是清楚的。但是,你的問題是,用了
tar?-xvf?*.tar
如樓上所說,tar接收到的是
tar?-xvf?a.tar?b.tar?c.tar?...
tar把你的意圖理解為,在a.tar里解出b.tar?c.tar?...
轉(zhuǎn)載于:https://www.cnblogs.com/yanzi-meng/p/9455922.html
總結(jié)
以上是生活随笔為你收集整理的Linux命令:tar命令批量解压方法总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BZOJ4566: [Haoi2016]
- 下一篇: 求一个女人独立微信网名