国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Linux > 正文

Shell中刪除某些文件外所有文件的3個方法

2019-10-26 18:42:52
字體:
供稿:網(wǎng)友

我的一位同事曾經(jīng)問過我這樣一個問題:在 Linux 下,如何 刪除目錄中除某些文件之外的所有文件?當(dāng)時,我告訴他可 以通過模式匹配的方法解決。但其實,除此之外,還有其他 的方法,正所謂“條條大路通羅馬”。讓我們來逐一看看。

假設(shè)要刪除 ~/Downloads 目錄中除 *.iso 和 *.zip 外的 所有文件,那么在 bash 中可以按以下方法處理:

方法1:模式匹配法

代碼如下:
shopt -s extglob # 確認(rèn)開啟 extglob 選項
cd ~/Downloads
rm -v !(*.iso|*.zip)
!(pattern list) 的作用是匹配除 pattern list 之外 的文件。

方法2:設(shè)置變量法

在 bash 中,GLOBIGNORE 可用來設(shè)置要忽略的模式匹配 文件,多個模式通過 : 分隔。
代碼如下:
cd ~/Downloads
export GLOBIGNORE=*.zip:*.iso
rm -v *
unset GLOBIGNORE

方法3:find 搜索法

熟悉 find 的朋友想必知道,find 的威力異常強大,因此 利用它也可解決此問題。

代碼如下:
cd ~/Downloads
find . -type f -not /( -name '*.zip' -or -name '*.iso' /) -delete

不過還是要提醒大家,rm 操作是非常危險的,切勿炫技,如果你不放心,那么可以先老老實實的逐個或分批刪除,也要比事后找回方便的多。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 稻城县| 张掖市| 富源县| 永靖县| 梨树县| 台山市| 凤山市| 临西县| 洪江市| 东平县| 常熟市| 布拖县| 政和县| 江西省| 景德镇市| 卓尼县| 连城县| 噶尔县| 尚义县| 会昌县| 温宿县| 会同县| 洮南市| 任丘市| 吉木萨尔县| 长海县| 福泉市| 扎兰屯市| 涪陵区| 铜陵市| 锡林郭勒盟| 石门县| 合水县| 广河县| 兖州市| 北碚区| 屏东市| 梨树县| 梧州市| 额尔古纳市| 将乐县|