如何在 Linux 中查找和删除名称中包含特定文本的文件

本指南说明如何查找和删除 包含特定文本或字符串 在 Linux 中使用 find 命令以他们的名字命名。 此外,我们还将学习如何查找和删除 “才不是” 在其名称中包含特定文本。

内容

  1. 介绍
  2. 1.在Linux中查找和删除名称中包含特定文本的文件
    1. 1.1。 在 Linux 中查找名称中包含特定文本的文件
  3. 2. 在 Linux 中查找和删除名称中“不”包含特定文本的文件
  4. 结论

介绍

我有许多 PDF 文件,其中包含一些重要的 Linux 提示和技巧。 我给这些文件一个唯一的文件名以便于识别。

例如,我将包含 LDAP 服务器配置详细信息的文件保存为 ldapconfig.pdf, FTP 配置文件为 ftpconfig.pdf,DHCP服务器配置细节为 dhcp_config.pdf, 等等。

我将其中大部分转换为文章并发布在我们的博客中,以便其他用户也可以从中受益。

问题是这些文件占用了大量磁盘空间。 因为,我有数百个文件,我不想手动查找和删除它们。 查找和删除所有文件可能需要几个小时。

在寻找一个简单的解决方案时,我开始知道“查找”命令在这种情况下可以帮助我。 在浏览了 find 命令的手册页后,我找到了一个合适的解决方案。 继续阅读。

1.在Linux中查找和删除名称中包含特定文本的文件

看看下面的例子。 我在一个名为的目录中有以下文件 “Linux_guides”.

$ cd Linux_guides/
$ ls apache_config.pdf dhcp_config.pdf ldap_config.pdf php_install.pdf apache_install.pdf ftp_config.pdf mysql_install.pdf

我完成了安装部分,所以我不需要包含单词的文件 “安装” 在他们的文件名中。

我们可以使用以下命令一次删除所有包含“安装”短语的文件,而不是一一查找和删除:

$ find -type f -name '*install*' -delete

上述命令将删除所有包含该短语的文件 “安装” 以他们的名义保留其他一切。

在 Linux 中查找和删除名称中包含特定文本的文件

如果 delete 选项不可用,您可以使用以下任一命令:

$ find -type f -name '*install*' -exec rm {} ;

或者,

$ find -type f -name '*install*' -exec rm {} +

您可能会问我们可以通过使用 "rm" 命令如下:

$ rm *install*

是的,它会的。 然而, rm install 命令将从当前目录中删除文件名中包含“安装”的所有文件,如果任何目录名包含 "install".

但是, "find -type f" 命令将递归搜索当前目录和所有子目录中的文件。

1.1。 在 Linux 中查找名称中包含特定文本的文件

如果您只想查找文件(而不是删除),只需删除选项 -delete 或者 -exec rm {} ; 或者 -exec rm {} + 在上述命令中。

例如,以下命令将仅查找包含字符串的文件 "install" 以他们的名义:

$ $ find -type f -name '*install*'

样本输出:

./mysql_install.pdf ./apache_install.pdf ./php_install.pdf

2. 在 Linux 中查找和删除名称中“不”包含特定文本的文件

您知道如何删除名称中包含特定短语的文件。 现在让我们看看如何查找和删除 没有特定的短语或字符串 以他们的名义。

为此,只需添加 '-not' find 命令中的参数如下所示。

$ find -type f -not -name '*install*' -delete

上面的命令 不会删除 包含该短语的文件 "install" 以他们的名义并删除其他所有内容。

如果 删除 选项不可用,您可以使用以下任一命令:

$ find -type f -not -name '*install*' -exec rm {} ;

或者,

$ find -type f -not -name '*install*' -exec rm {} +
在 Linux 中查找和删除名称中不包含特定文本的文件

有关 find 命令的更多详细信息,请参阅手册页。

$ man find

结论

您现在知道如何查找名称中包含特定名称的文件,以及如何删除名称中包含和不包含特定单词的文件。 当您要删除目录中大量相同类型的文件时,这将很有帮助。

命令行删除名称中包含特定文本的文件查找命令查找名称中包含特定文本的文件LinuxLinux 基础Linux 命令Linux 提示