linux find命令 查找/tmp目录下属于root(或其他用户,下同)的所有普通文件,这些文件的修改时间为120 min以前,查询结果用长格式显示,并对以上文件用-ok选项删除
时间: 2024-09-25 21:04:11 浏览: 54
Linux 的 `find` 命令是一个强大的文件搜索工具,可以按照特定条件查找文件或目录。针对您的需求,可以使用如下的命令:
```bash
find /tmp -type f -user root -mtime +120 -print0 | xargs -0 rm -f
```
解释一下各个部分:
- `find /tmp`: 指定从 `/tmp` 目录开始搜索。
- `-type f`: 只查找文件,不包括目录。
- `-user root`: 搜索属于 `root` 用户的文件。
- `-mtime +120`: 查找在过去120分钟内未被修改过的文件(+ 表示大于,这里是大于120分钟)。
- `-print0`: 使用 null 字符分隔输出,以便 `xargs` 能正确处理空格或特殊字符。
- `xargs -0 rm -f`: 通过 `xargs` 后续命令行处理 `find` 的输出,`-f` 参数表示强制删除(无提示确认),`rm` 删除找到的文件。
运行这个命令会查找符合条件的文件并直接删除它们。注意,由于 `rm -f` 的自动删除性质,操作前请谨慎确认,因为一旦执行,无法撤销。
相关问题
linux题目1、查找其所有者不是root、bin和student用户的所有文件并用长格式显示。2、查找/tmp目录下属于student的所有普通文件,这些文件的修改时间为120 min以前,查询结果用长格式显示
1、查找其所有者不是root、bin和student用户的所有文件并用长格式显示:
```
find / -type f ! -user root ! -user bin ! -user student -ls
```
解释:
- `find` 命令用于查找文件。
- `/` 表示从根目录开始查找。
- `-type f` 表示查找普通文件。
- `! -user root ! -user bin ! -user student` 表示查找文件所有者不是 root、bin 和 student 的文件。
- `-ls` 表示用长格式显示文件属性。
2、查找 `/tmp` 目录下属于 `student` 的所有普通文件,这些文件的修改时间为 120 分钟以前,查询结果用长格式显示:
```
find /tmp -type f -user student -mmin +120 -ls
```
解释:
- `-mmin +120` 表示查找修改时间在 120 分钟以前的文件。
- 其余参数的含义与第一题相同。
find命令查找/root目录下,所属用户组为kiosk的文件,把这些文件拷贝到/root/data目录
可以使用下面的命令来实现:
```
find /root -group kiosk -type f -exec cp {} /root/data \;
```
其中:
- `/root`:要查找的目录。
- `-group kiosk`:限定要查找的文件所属的用户组为 `kiosk`。
- `-type f`:限定查找的是普通文件,不包括目录等其他类型的文件。
- `-exec cp {} /root/data \;`:对于每一个找到的文件,执行 `cp` 命令将其拷贝到 `/root/data` 目录下。
注意,如果 `/root/data` 目录不存在,需要先创建该目录。