📅  最后修改于: 2023-12-03 15:22:43.367000             🧑  作者: Mango
在Linux系统下,我们可以通过Shell脚本来完成很多的任务,其中一个就是删除没有扩展名的文件,这个任务可以通过简单的一行命令来实现。
实现这个任务的思路其实很简单,就是通过find
命令查找当前目录下的所有没有扩展名的文件,然后通过rm
命令删除这些文件。下面是具体的代码实现:
find . -type f -name *.* -not -name "*.*.*" -exec rm -f {} \;
这个命令的含义是:
find .
:查找当前目录下的文件;-type f
:只查找文件,不包括目录;-name *.*
:只查找所有有扩展名的文件;-not -name "*.*.*"
:查找没有扩展名的文件;-exec rm -f {} \;
:执行删除操作。以下是对每一行代码的解析:
find . -type f -name *.* -not -name "*.*.*" -exec rm -f {} \;
find
命令用来查找文件。.
表示当前目录。-type
表示查找的类型,其中 f
表示普通文件,不包括目录。-name
表示文件名,其中 *.*
表示所有有扩展名的文件。-not
表示取反,即查找没有扩展名的文件。-exec
表示执行命令。rm
表示删除文件。-f
表示不提示确认。{}
表示查找到的文件名,类似于占位符。\;
表示命令结束的标志。使用这个命令要非常小心,因为它会删除所有没有扩展名的文件。如果你想测试这个命令,请在测试环境中进行,如果出错不要轻易尝试恢复文件。
以上就是删除所有没有扩展名 rm 的文件的 Shell-Bash 实现方法及其代码解析。这个命令可能有一定危险性,因此请一定要谨慎使用。