删除所有带扩展名的文件 Linux命令行

621 阅读3分钟

每个文件都由一个特定的扩展名组成。如果我们想从Linux系统中删除相同或不同扩展名的文件,我们必须遵循许多不同类型的命令。在这篇文章中,我们将看到如何删除所有带有扩展名的文件的Linux命令行。

删除所有带有扩展名的文件 Linux命令行

本节将解释在Linux中使用命令行删除所有带扩展名的文件的不同方式和方法。

使用rm命令

rm "命令是Linux中的一个基本命令行工具,用于删除套接字、管道、设备节点、符号链接、目录、系统文件等。要删除一个具有特定扩展名的文件,可以使用'rm'命令。这个命令非常容易使用,其语法是这样的。

$ rm ...

在相应的命令中,"filename1"、"filename2 "等指的是文件名,加上它们的完整路径。当文件在同一目录下时,我们不需要写全路径,但如果不是这种情况,我们必须提到全路径。

我们可以使用通配符表达式来指定增量的、同名的文件或具有特定文件扩展名的文件。因此,让我们举个例子,我们将删除DATA.txt、DATA1.txt和DATA2.txt文件。这些文件在Documents目录下,所以首先,我们将在终端使用以下命令打开它们。

之后,执行下面的命令

现在让我们验证一下系统是否已经成功删除了这些文件,所以执行以下命令。

使用子串删除文件

在以下命令的帮助下,我们可以删除那些包含子串 "test "的文件。

rm *test*

这里'*'表示任何字符串。这就是为什么这里的 "*test*"会考虑所有含有子串 "test "的文件。

我们可以轻松地从任何文件夹中删除特定扩展名的文件。在这个例子中,我们将删除扩展名为gif的文件。我们可以使用以下命令删除文件夹中的所有GIF文件。

rm *.gif

上述语法仅适用于文件。除了文件,我们还可以使用参数'-r'删除文件夹。

$ rm -r <文件/文件夹1><文件/文件夹2> ...<文件/文件夹N>

主要需要注意的是,它是以递归方式删除整个文件夹,即整个文件夹结构中该文件夹的所有文件、子文件夹等。这就得出结论,没有办法递归删除具有特定扩展名的文件或具有文件名模式的文件。

查找命令

查找是搜索文件的最有效和最流行的命令。在Linux中,find命令被用来删除文件扩展名。find命令根据大小、扩展名、名称和文件参数递归地搜索文件。使用find命令,我们可以用管道将其输出到 "rm"。

备份和验证文件

不同的命令也被用来验证我们正在删除哪些文件,以及它们的位置是否正确。然而,一旦确定是正确的,就不需要这个步骤了。

验证位置

我们应该确保我们文件的位置是正确的。为此,我们使用以下命令。

pwd/tmp/d

备份文件

对于备份,我们使用tar命令。除非我们100%确定我们是否有正确的文件可以删除,否则我们应该做一个备份。

tar -cfbackup.tar

我们可以添加-v选项来查看tar命令备份的文件列表。

tar -cvfbackup.tar 。

用find - delete删除文件

如果我们在使用 "rm "时犹豫不决,我们可以使用 "find",除此之外。它必须被谨慎地使用。它是这样的

查找.-名称 "*.bak" -类型f-删除

首先,我们要确定我们要删除哪个文件。为此,我们使用以下命令。

查找.-名称 "*.bak" -类型f

我们必须特别注意,-delete是我们命令中的最后一个参数。如果我们不小心把它放在了-name *.bak参数之前,它就会删除所有的东西。

用find和xargs删除文件

它不支持'-delete'选项。我们可以用下面的方式把它管到'rm'中,并把搜索时的输出放在我们面前。

find.-name "*.bak" | xargs rm

这里我们使用'xargs'命令向'rm'传递一个参数。我们可以通过使用这种方法递归地删除整个文件夹结构。

用find-exec删除文件

我们使用rm与不同的命令(如trash)或附加选项来删除文件。

find.-typef-name '*.txt~' -exec rm -f{}\;

或者

查找.-typef-name '*.txt~' -exectrash{} \。

使用find与-exec给我们带来了使用任何选项和命令来删除文件的优势。同时,它还允许我们对一组文件执行其他的批量操作。

总结

这篇文章告诉我们如何通过使用各种命令从文件夹或具有任何特定扩展名的文件夹中删除任何文件。我们希望通过这篇文章的解释,你能在一个地方得到完整的信息,你一定能很好地理解它。