成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在 Linux 命令行中刪除指定擴展名的文件

系統 Linux
怎樣根據文件擴展名來刪除多個文件呢?今天我們來介紹幾種方法。

我們大家都知道,在 Linux 中刪除文件可以使用 rm 命令:

rm [option] filename

不過,使用上述命令刪除文件的時候,需要知道確切的文件名。那么怎樣根據文件擴展名來刪除多個文件呢?今天我們來介紹幾種方法。

方法1:使用 rm 命令按擴展名刪除文件

作為演示,假如我們要刪除擴展名為 gif 的所有文件,可以這樣做:

rm *.gif

不過一般情況下,直接刪除是有風險的,在刪除之前最好先檢查一下:

ls *.gif

通常情況下,我在刪除文件的時候會做如下操作:

$ ls
1.gif 2.gif 3.gif 4.gif a.jpg b.png c.webp

$ ls *.gif
1.gif 2.gif 3.gif 4.gif

$ rm -v *.gif
removed '1.gif'
removed '2.gif'
removed '3.gif'
removed '4.gif'

$ ls
a.jpg b.png c.webp

此外,還可以同時刪除多個擴展名的文件,如下:

$ ls
f1.txt f2.txt f3.txt f4.txt not-txt-file.pdf random.txt

$ rm -v *.txt *.pdf
removed 'f1.txt'
removed 'f2.txt'
removed 'f3.txt'
removed 'f4.txt'
removed 'not-txt-file.pdf'

$ ls
random.txt

在使用 rm 命令的時候,可以使用交互式的 -i 選項,該選項要求在刪除文件之前進行確認。不過這個適用于刪除單個或者幾個文件,如果批量刪除文件,這個選項就不方便了。

像上面的刪除操作,它具體是怎樣工作的呢?答案是使用的通配符

簡而言之,通配符是用于匹配特定模式的特殊字符。以下是一些常用的通配符:

通配符

用途

*

匹配一個或多個匹配項

?

匹配單個

[] (方括號)

指定匹配范圍

^

從匹配中排除

在上面的刪除例子中,我們使用了 * 通配符,這表示它可以匹配任何字符。當你使用 *.gif 的時候,它實際表示的是與 .gif 組合的任何字符,也就是說,它提供了所有以 gif 為擴展名的文件。

* 和擴展名之間的點很重要?

有些人在使用通配符的時候,會這樣寫:*gif,這是不對的。* 和擴展名之間的點 . 至關重要。

看下面的例子,假如我們使用 *gif 來刪除文件,看看會怎樣。

$ ls
1.gif 2.gif 3.gif 4.gif definately-not-a-gif jpg-not-gif not-a-gif

$ rm -v *gif
removed '1.gif'
removed '2.gif'
removed '3.gif'
removed '4.gif'
removed 'definately-not-a-gif'
removed 'jpg-not-gif'
removed 'not-a-gif'

可以看到,除了刪除所有 gif 文件外,它還刪除了文件名中帶有字符串 gif 的文件,盡管它不是文件的擴展名。所以,刪除帶有通配符或正則表達式的文件時,應確保盡可能精確。

方法2:使用find命令遞歸刪除具有特定擴展名的文件?

rm 命令僅刪除當前目錄中的文件。即使使用遞歸選項,它也不會從子目錄中刪除文件。

要遞歸刪除具有特定擴展名的文件,可以組合find命令和rm命令。看下面的例子,在子目錄中也有 .gif 文件:

$ ls *
file_0.gif file_z.txt not-a-gif not-a-txt

dir1:
file_1.gif file_a.txt not-a-gif not-a-txt

dir2:
file_2.gif file_b.txt not-a-gif not-a-txt

dir3:
file_3.gif file_c.txt not-a-gif not-a-txt

dir4:
file_4.gif file_d.txt not-a-gif not-a-txt

要刪除文件,可以使用??find和exec命令??,如下所示:

find . -type f -name "*.gif" -exec

以下是上述命令的輸出:

$ find . -type f -name "*.gif" -exec rm -v {} \;
removed './dir1/file_1.gif'
removed './dir3/file_3.gif'
removed './dir2/file_2.gif'
removed './file_0.gif'
removed './dir4/file_4.gif

下面我們拆開來說明下:

  • find 后面的點 . 表示在當前目錄中搜索;
  • -name 選項指定文件的名稱,我們可以在其中使用正則表達式;
  • -exec 選項用于對 find 命令的結果執行 bash 命令;
  • {} 大括號充當匹配文件結果的占位符,因此 rm-v {} 將刪除find命令找到的文件;
  • 最后,分號結束 shell 執行的命令(exec之后的命令),并使用反斜杠 \,以便正確轉義分號。

在下面的文章中可了解 find 命令的更多例子:

??關于 find 命令的15個超級有用的例子??

使用 find 命令處理多個擴展名文件?

上面顯示的命令不包括查找具有多個擴展名的文件,如:rm *.gif *.txt

要實現這一點,可以使用 -o 參數,它表示邏輯或運算符,但需要用括號括起來,且必須使用反斜杠 \ 來轉義括號。

$ ls *
file_0.gif file_z.txt not-a-gif not-a-txt

dir1:
file_1.gif file_a.txt not-a-gif not-a-txt

dir2:
file_2.gif file_b.txt not-a-gif not-a-txt

dir3:
file_3.gif file_c.txt not-a-gif not-a-txt

dir4:
file_4.gif file_d.txt not-a-gif not-a-txt

$ find . \( -name "*.gif" -o -name "*.txt" \) -exec rm -v {} \;
removed './dir1/file_1.gif'
removed './dir1/file_a.txt'
removed './dir3/file_3.gif'
removed './dir3/file_c.txt'
removed './dir2/file_2.gif'
removed './dir2/file_b.txt'
removed './file_0.gif'
removed './file_z.txt'
removed './dir4/file_d.txt'
removed './dir4/file_4.gif'

在這里,我們可以看到所有擴展名為 txt 的文件和擴展名為 gif 的文件都被遞歸刪除。

大家可能會覺得對每個文件擴展名類型單獨使用 find 命令會更容易,實際上也是這樣的...

責任編輯:龐桂玉 來源: TIAP
相關推薦

2023-02-07 09:49:26

Linux命令行合并文件

2009-08-25 09:26:57

Windows 7查看文件擴展名

2023-03-17 11:33:18

Linux

2022-10-14 19:30:29

Linux

2019-08-15 15:00:31

Linux命令行PDF

2023-03-21 09:31:30

Linux命令行文件夾

2009-10-21 10:13:19

Linux文件擴展名

2014-05-04 10:58:18

Linux命令行Linux發行版

2018-04-25 10:46:05

Linux命令行日歷

2010-04-27 12:32:05

2015-02-10 10:05:11

LinuxLinux命令

2022-11-08 09:38:18

Linux命令行刪除文件

2015-09-02 15:47:05

命令行fdupesLinux

2022-11-18 12:47:51

LinuxAWS命令行工具

2022-10-18 14:52:36

2018-03-29 15:58:55

Linux命令行編輯器

2015-12-16 16:01:13

2022-04-11 06:03:24

FdupesLinux命令行工具

2009-08-06 20:14:16

linux命令行模式linux命令行修改系統時間

2015-10-19 17:16:10

天氣預報命令行Linux
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品一区二区在线观看 | 久久亚洲国产精品日日av夜夜 | 午夜91| 精品99久久久久久 | 日韩欧美一二三区 | 国产精品美女久久久av超清 | www.jizzjizz| 国产一区二区三区在线免费 | 国产在线一区二区三区 | 国产成人免费视频网站高清观看视频 | 久视频在线 | 日本国产高清 | 日韩影音| 亚洲精品国产综合区久久久久久久 | 国产免费观看一区 | 激情五月激情综合网 | 午夜在线视频 | 久久久久久亚洲欧洲 | 日本欧美国产在线观看 | 欧美αv| 国产成人精品免高潮在线观看 | 欧美一区二区三区久久精品视 | 暖暖成人免费视频 | 怡红院怡春院一级毛片 | 亚洲午夜电影 | 欧美久久视频 | 国产日韩欧美中文字幕 | 密室大逃脱第六季大神版在线观看 | 国产精品精品视频一区二区三区 | 成年人网站国产 | 日产精品久久久一区二区福利 | 国产精品一区二区久久久久 | 欧美激情va永久在线播放 | www.色.com | 欧美在线视频网站 | 日韩免费看片 | 91麻豆精品国产91久久久久久 | 日韩视频精品 | 国产日韩欧美精品 | 欧美天堂在线观看 | 亚洲国产精品suv |