跳到主要内容

编写Shell找出系统内大于50k,小于100k的文件,并删除它们 ?

参考答案:

要找出并删除系统中大于50k且小于100k的文件,你可以使用find命令结合-size选项来实现。下面是一个示例命令:

find /path/to/search -type f -size +50k -size -100k -exec rm {} \;

在这个命令中,你需要将/path/to/search替换为你要搜索的目录路径。这个命令会递归地搜索指定目录及其子目录中的文件,并找出大小在50k到100k之间的文件。

解释一下命令中的各个部分:

  • find: 是用于在文件系统中查找文件的命令。
  • /path/to/search: 是你要搜索的目录路径。
  • -type f: 表示只查找普通文件,不包括目录和其他特殊文件。
  • -size +50k: 表示文件大小大于50k。
  • -size -100k: 表示文件大小小于100k。
  • -exec rm {} \;: 对每个找到的文件执行rm命令进行删除。{}是一个占位符,代表当前找到的文件名。\;表示-exec选项的结束。

请注意,这个命令会立即删除找到的文件,而不会将它们移动到回收站或进行任何形式的备份。因此,在执行此命令之前,请务必谨慎并确认你的操作是正确的。

如果你希望在删除文件之前先查看它们的列表,你可以将-exec rm {} \;替换为-exec echo {} \;,这样命令将只打印出文件的路径,而不会实际删除它们。这样,你可以先查看输出列表,确认无误后再执行删除操作。