Linux基礎(chǔ)

//批量移動
# find ./ -name "*.tar.gz" | xargs -i mv {}  ./test/
//批量解壓
# ls *.tar.gz | xargs -n1 tar xzvf

解壓縮
文章轉(zhuǎn)自Linux下的tar壓縮解壓縮命令詳解

tar
-c: 建立壓縮檔案
-x:解壓
-t:查看內(nèi)容
-r:向壓縮歸檔文件末尾追加文件
-u:更新原壓縮包中的文件

這五個是獨立的命令,壓縮解壓都要用到其中一個迟螺,可以和別的命令連用但只能用其中一個帝牡。下面的參數(shù)是根據(jù)需要在壓縮或解壓檔案時可選的叔遂。
-z:有g(shù)zip屬性的
-j:有bz2屬性的
-Z:有compress屬性的
-v:顯示所有過程
-O:將文件解開到標(biāo)準(zhǔn)輸出

下面的參數(shù)-f是必須的
-f: 使用檔案名字,切記羹蚣,這個參數(shù)是最后一個參數(shù)哗总,后面只能接檔案名。

# tar -cf all.tar *.jpg這條命令是將所有.jpg的文件打成一個名為all.tar的包镜会。-c是表示產(chǎn)生新的包,-f指定包的文件名终抽。
# tar -rf all.tar *.gif這條命令是將所有.gif的文件增加到all.tar的包里面去戳表。-r是表示增加文件的意思。
# tar -uf all.tar logo.gif這條命令是更新原來tar包all.tar中l(wèi)ogo.gif文件昼伴,-u是表示更新文件的意思匾旭。
# tar -tf all.tar這條命令是列出all.tar包中所有文件,-t是列出文件的意思
# tar -xf all.tar這條命令是解出all.tar包中所有文件圃郊,-t是解開的意思

由于Linux的tar命令不支持批量解壓价涝,所以很多網(wǎng)友編寫了好多支持批量解壓的shell命令,收集了一下持舆,供大家分享:
第一:
for tar in *.tar.gz; do tar xvf $tar; donefor 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 {}

這條命令可解壓當(dāng)前目錄下的所有bz2文件
批量解壓是比較郁悶的事色瘩,以前嘗試各種方法,甚至用腳本循環(huán)語句解壓都不行
現(xiàn)在發(fā)現(xiàn)這條命令可以搞定逸寓,maxdepth表示搜索深度居兆,1代表只搜索當(dāng)前目錄 第四:
for i in $(ls *.tar);do tar xvf $i;done

問題: 我想進(jìn)行批量解壓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 … 如果當(dāng)前目錄跟本沒有tar的東西,那么tar就收到’.tar’這個參數(shù) 與win不同拜银,linux所有字符都可以作文件名殊鞭,也即目錄中不存在著 *.tar這個文件 為了防止 *.tar被shell解釋為a.tar b.tar c.tar… 可以給它加個單引號
用tar解開一個Archive時,語法是 tar -xvf <tarfile.tar> <tarfile.tar> 是選項f所要求的盐股,只能是一個文件钱豁,比如myfiles.tar耻卡。 是myfiles.tar所包含的歸了檔的文件中的一個或者多個成員文件疯汁。如果是多個,可以用通配符卵酪。 先別跟我急幌蚊,我知道谤碳,這些你是清楚的。但是溢豆,你的問題是蜒简,用了 tar -xvf *.tar 如樓上所說,tar接收到的是 tar -xvf a.tar b.tar c.tar … tar把你的意圖理解為漩仙,在a.tar里解出b.tar c.tar …

壓縮
tar -cvf jpg.tar *.jpg //將目錄里所有jpg文件打包成tar.jpg
tar -czf jpg.tar.gz *.jpg //將目錄里所有jpg文件打包成jpg.tar后搓茬,并且將其用gzip壓縮,生成一個gzip壓縮過的包队他,命名為jpg.tar.gz
tar -cjf jpg.tar.bz2 *.jpg //將目錄里所有jpg文件打包成jpg.tar后卷仑,并且將其用bzip2壓縮,生成一個bzip2壓縮過的包麸折,命名為jpg.tar.bz2
tar -cZf jpg.tar.Z *.jpg //將目錄里所有jpg文件打包成jpg.tar后锡凝,并且將其用compress壓縮,生成一個umcompress壓縮過的包垢啼,命名為jpg.tar.Z
rar a jpg.rar *.jpg //rar格式的壓縮窜锯,需要先下載rar for linux
zip jpg.zip *.jpg //zip格式的壓縮,需要先下載zip for linux

解壓
tar -xvf file.tar //解壓 tar包
tar -xzvf file.tar.gz //解壓tar.gz
tar -xjvf file.tar.bz2 //解壓 tar.bz2
tar -xZvf file.tar.Z //解壓tar.Z
unrar e file.rar //解壓rar
unzip file.zip //解壓zip

總結(jié)
1芭析、.tar 用 tar -xvf 解壓
2锚扎、
.gz 用 gzip -d或者gunzip 解壓
3、.tar.gz和.tgz 用 tar -xzf 解壓
4放刨、.bz2 用 bzip2 -d或者用bunzip2 解壓
5工秩、
.tar.bz2用tar -xjf 解壓
6、.Z 用 uncompress 解壓
7进统、
.tar.Z 用tar -xZf 解壓
8助币、.rar 用 unrar e解壓
9、
.zip 用 unzip 解壓

VI下查找
文章轉(zhuǎn)載自Linux vi中查找字符內(nèi)容的方法

使用vi編輯器編輯長文件時螟碎,常常是頭昏眼花眉菱,也找不到需要更改的內(nèi)容。
這時掉分,使用查找功能尤為重要俭缓。
方法如下:
1、命令模式下輸入“/字符串”酥郭,例如“/Section 3”华坦。
2、如果查找下一個不从,按“n”即可惜姐。
要自當(dāng)前光標(biāo)位置向上搜索,請使用以下命令:
/pattern Enter
其中,pattern表示要搜索的特定字符序列歹袁。
要自當(dāng)前光標(biāo)位置向下搜索坷衍,請使用以下命令:
?pattern Enter
按下 Enter鍵后,vi 將搜索指定的pattern条舔,并將光標(biāo)定位在 pattern的第一個字符處枫耳。例如,要向上搜索 place一詞孟抗,請鍵入:
vi 查找替換大全
vi/vim 中可以使用 :s 命令來替換字符串迁杨。以前只會使用一種格式來全文替換,今天發(fā)現(xiàn)該命令有很多種寫法(vi 真是強大啊凄硼,還有很多需要學(xué)習(xí))仑最,記錄幾種在此,方便以后查詢帆喇。
:s/vivian/sky/ 替換當(dāng)前行第一個 vivian 為 sky
:s/vivian/sky/g 替換當(dāng)前行所有 vivian 為 sky
:n,$s/vivian/sky/ 替換第 n 行開始到最后一行中每一行的第一個 vivian 為 sky
:n,$s/vivian/sky/g 替換第 n 行開始到最后一行中每一行所有 vivian 為 sky
n 為數(shù)字警医,若 n 為 .,表示從當(dāng)前行開始到最后一行
:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替換每一行的第一個 vivian 為 sky
:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替換每一行中所有 vivian 為 sky
可以使用 # 作為分隔符坯钦,此時中間出現(xiàn)的 / 不會作為分隔符
:s#vivian/#sky/# 替換當(dāng)前行第一個 vivian/ 為 sky/
:%s+/oradata/apras/+/user01/apras1+ (使用+ 來 替換 / ): /oradata/apras/替換成/user01/apras1/
1.:s/vivian/sky/ 替換當(dāng)前行第一個 vivian 為 sky
:s/vivian/sky/g 替換當(dāng)前行所有 vivian 為 sky

  1. :n,$s/vivian/sky/ 替換第 n 行開始到最后一行中每一行的第一個 vivian 為 sky
    :n,$s/vivian/sky/g 替換第 n 行開始到最后一行中每一行所有 vivian 為 sky
    (n 為數(shù)字预皇,若 n 為 .,表示從當(dāng)前行開始到最后一行)
  2. :%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替換每一行的第一個 vivian 為 sky
    :%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替換每一行中所有 vivian 為 sky
  3. 可以使用 # 作為分隔符婉刀,此時中間出現(xiàn)的 / 不會作為分隔符
    :s#vivian/#sky/# 替換當(dāng)前行第一個 vivian/ 為 sky/
  4. 刪除文本中的^M
    問題描述:對于換行,window下用回車換行(0A0D)來表示吟温,Linux下是回車(0A)來表示。這樣突颊,將window上的文件拷到Unix上用時鲁豪,總會有個^M.請寫個用在unix下的過濾windows文件的換行符(0D)的shell或c程序。
    · 使用命令:cat filename1 | tr -d “VM” > newfile律秃;
    · 使用命令:sed -e “s/VM//” filename > outputfilename爬橡。需要注意的是在1、2兩種方法中棒动,V和M指的是Ctrl+V和Ctrl+M糙申。你必須要手工進(jìn)行輸入,而不是粘貼船惨。
    · 在vi中處理:首先使用vi打開文件柜裸,然后按ESC鍵,接著輸入命令:%s/VM//粱锐。
    · :%s/^M$//g
    如果上述方法無用疙挺,則正確的解決辦法是:
    · tr -d "r" < src >dest
    · tr -d "15" dest
    · strings A>B
  5. 其它
    利用 :s 命令可以實現(xiàn)字符串的替換。具體的用法包括:
    :s/str1/str2/ 用字符串 str2 替換行中首次出現(xiàn)的字符串 str1
    :s/str1/str2/g 用字符串 str2 替換行中所有出現(xiàn)的字符串 str1
    :.,$ s/str1/str2/g 用字符串 str2 替換正文當(dāng)前行到末尾所有出現(xiàn)的字符串 str1
    :1,$ s/str1/str2/g 用字符串 str2 替換正文中所有出現(xiàn)的字符串 str1
    :g/str1/s//str2/g 功能同上
    從上述替換命令可以看到:g 放在命令末尾怜浅,表示對搜索字符串的每次出現(xiàn)進(jìn)行替換铐然;不加 g,表示只對搜索
    字符串的首次出現(xiàn)進(jìn)行替換;g 放在命令開頭锦爵,表示對正文中所有包含搜索字符串的行進(jìn)行替換操作。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末奥裸,一起剝皮案震驚了整個濱河市险掀,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌湾宙,老刑警劉巖樟氢,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異侠鳄,居然都是意外死亡埠啃,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進(jìn)店門伟恶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來碴开,“玉大人,你說我怎么就攤上這事博秫×逝#” “怎么了?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵挡育,是天一觀的道長巴碗。 經(jīng)常有香客問我,道長即寒,這世上最難降的妖魔是什么橡淆? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮母赵,結(jié)果婚禮上逸爵,老公的妹妹穿的比我還像新娘。我一直安慰自己凹嘲,他們只是感情好痊银,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著施绎,像睡著了一般溯革。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上谷醉,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天致稀,我揣著相機與錄音,去河邊找鬼俱尼。 笑死抖单,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播矛绘,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼耍休,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了货矮?” 一聲冷哼從身側(cè)響起羊精,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎囚玫,沒想到半個月后喧锦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡抓督,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年燃少,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片铃在。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡阵具,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出定铜,到底是詐尸還是另有隱情怔昨,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布宿稀,位于F島的核電站趁舀,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏祝沸。R本人自食惡果不足惜矮烹,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望罩锐。 院中可真熱鬧奉狈,春花似錦、人聲如沸涩惑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽竭恬。三九已至跛蛋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間痊硕,已是汗流浹背赊级。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留岔绸,地道東北人理逊。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓拙绊,卻偏偏與公主長得像仓蛆,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子居暖,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容