如何在 Linux 中删除文件夹中除一个特定文件之外的所有文件

假设您在一个文件夹中有 100 多个文件。 除了一个或几个特定文件之外,您要删除所有这些文件。 你会怎么做? 您可以复制要保留的文件,并将它们保存在不同的位置,然后删除其余文件或整个文件夹。 但是等等,我知道一个最简单的方法来做到这一点。 您可以使用单行命令一次性删除旧文件中的所有文件,但一个特定文件或某些类型的文件除外。 想知道怎么做? 继续阅读。

删除文件夹中除一个特定文件外的所有文件

让我们用下面的图片 example. 我们有一个名为“test”的文件夹,其中包含 10 个文本文件。

$ ls test/

样本输出:

file10.txt file2.txt file4.txt file6.txt file8.txt
file1.txt file3.txt file5.txt file7.txt file9.txt

现在,我想删除此文件夹中的所有内容,除了 文件10.txt.

可能有很多命令可以做到这一点。 但这是我所知道的五个命令。

首先,前往 测试 文件夹:

$ cd test/

并运行以下命令:

$ rm -f !(file10.txt)

或者,只需使用:

$ rm !(file10.txt)

上述命令将删除 test 文件夹中的所有文件,除了 文件10.txt 文件。

你也可以使用 查找命令 删除除特定内容之外的所有内容。 以下命令将删除当前文件夹中的所有文件(即我们的例子中的 test),除了 file10.txt。

$ find . ! -name file10.txt -delete

正如你在上面看到的 example,测试文件夹包含相同类型的文件,即 .txt 文件。 如果文件夹包含不同类型的文件,如 .mp3、.doc、.pdf 等,您会怎么做? 将特定类型的文件保存在文件夹中并删除其他所有文件也很容易。

假设我们的测试文件夹包含三个 .txt 文件、三个 .mp3 文件、三个 .doc 文件和一个 .pdf 文件。

$ ls test/

样本输出:

total 0
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file10.pdf
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file1.txt
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file2.txt
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file3.txt
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file4.mp3
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file5.mp3
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file6.mp3
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file7.doc
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file8.doc
-rw-r--r-- 1 sk users 0 Mar 22 15:51 file9.doc

正如您在上面的输出中一样,我在测试文件夹中有四种不同类型的文件(pdf、txt、mp3、doc)。 我想保留有 .doc 扩展并删除其他所有内容。 我可以这样做:

$ cd test/
$ rm !(*.doc)

现在,让我们使用命令列出文件内容:

$ ls

样本输出:

file7.doc  file8.doc  file9.doc

上述命令删除文件夹中的所有内容,但具有扩展名的文件除外 .doc.

同样,您可以保留两种或更多特定类型的文件并删除其他所有文件。 说为 example,以下命令将保留包含的文件 .doc.mp3 扩展名。

$ rm !(*.doc|*.mp3)

现在,您将看到 mp3 和 doc 文件没有被删除。

$ ls

样本输出:

file4.mp3  file5.mp3  file6.mp3  file7.doc  file8.doc  file9.doc

下载免费指南:“GNU/Linux 基础”

这些只是十种不同类型的文件。 只是图像你有数百个文件。 很难找到每种文件类型并手动删除它们。 这个技巧将在一两秒钟内完成这项工作。

请在使用这些命令时非常小心。 在删除文件之前仔细检查目录路径,以避免意外删除重要文件。

建议阅读:

  • 防止文件和文件夹在 Linux 中被意外删除或修改
  • 在 Linux 中保护文件免遭意外删除的简单方法

希望这可以帮助。 如果您觉得本指南有用,请在您的社交、专业网络上分享并支持我们。

更多好东西即将到来。 敬请关注!

干杯!

感谢您的光临!

帮助我们帮助您:

祝你有美好的一天!!