📌  相关文章
📜  删除所有没有扩展名 rm 的文件 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:22:43.367000             🧑  作者: Mango

删除所有没有扩展名 rm 的文件 - Shell-Bash

在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 实现方法及其代码解析。这个命令可能有一定危险性,因此请一定要谨慎使用。