搜索在目录/home/tmp/src及其子目录下所有以f开头的,1天以内未被使用的文件,并将这些文件复制到/home/tmp/old目录中。
时间: 2024-10-06 09:03:26 浏览: 40
要搜索目录`/home/tmp/src`及其子目录下所有以`f`开头、一天内未被访问过的文件并将其复制到`/home/tmp/old`目录中,你可以使用Unix/Linux下的find命令结合mtime选项。以下是相应的命令行步骤:
```sh
find /home/tmp/src -type f -name "f*" -mtime +1 -exec cp {} /home/tmp/old \;
```
这里解释一下各个部分的作用:
- `find /home/tmp/src`: 开始查找从`/home/tmp/src`开始。
- `-type f`: 只查找普通文件,不包括目录或其他类型的文件。
- `-name "f*"`: 匹配名称以`f`开头的所有文件。
- `-mtime +1`: 查找最近一天内未被修改(也就是一天以上未被访问)的文件。
- `-exec cp {} /home/tmp/old \;`: 对每个找到的文件执行复制操作,`{}`代表当前匹配的文件,`\;`用于分隔命令。
运行这个命令后,所有符合条件的文件会被复制到`/home/tmp/old`目录中。如果需要确认操作前可以先加上`-print`选项查看哪些文件会被操作。
相关问题
搜索在目录/home/tmp/src及其子目录下所有以f开头的,1天以未被使用的文件,并将这些文件复制到/home/tmp/old目录中。
为了搜索`/home/tmp/src`及其子目录下的所有以`f`开头、并且一天内未被访问过的文件并将它们复制到`/home/tmp/old`目录中,你可以使用Linux的find命令结合mtime(修改时间)条件。假设当前日期是`dd-mm-yyyy`,可以按照以下步骤操作:
1. 使用`find`命令找到目标文件:
```sh
find /home/tmp/src -type f \( -name "f*" -o -name "*f" \) -mtime +1
```
这会查找所有以`f`开头或`f`在其他位置的文件,并且文件的最近修改时间比今天早一天。
2. 接下来,添加 `-exec`选项来执行复制操作,将匹配的文件复制到`/home/tmp/old`目录:
```sh
find /home/tmp/src -type f \( -name "f*" -o -name "*f" \) -mtime +1 -exec cp {} /home/tmp/old \;
```
这里`{}`代表find找到的每个文件,`\;`表示执行操作的分隔符。
注意:这个操作需要有适当的权限才能访问`/home/tmp/src`和`/home/tmp/old`目录,如果需要确认权限,可以在执行前加上`sudo`。
(1)写出完成下列功能所需要的命令: ①修改文件a.c的权限为:所有者,可读可写;其他人,只读。 ②删除当前目录下所有以.o结尾的文件。 ③搜索在目录tmp/src及其子目录下所有以yyl开头的、5天以上未被使用的文件并将这些文件复制到tmp/old目录中。 ④创建目录tmp/src/aaa目录,如果上级目录不存在,则依次创建上级目录5搜索目录tmp/src目录及其子目录下的8天以内使用过的文件中,包含hello的行并显示在屏幕上。
(1) 对应的命令如下:
① chmod u=rw,g=r,o=r a.c
② rm *.o
③ find tmp/src -name "yyl*" -mtime +5 -exec cp {} tmp/old \;
④ mkdir -p tmp/src/aaa
(2) 搜索目录命令如下:
find tmp/src -type f -mtime -8 -exec grep "hello" {} \;
阅读全文