题目描述
查找当 jacques
所有的所有文件并将其副本放入 /root/findfiles
目录。
核心命令
find / -user [用户名] -exec cp -a {} [要保存的位置] \;
操作步骤
本题的翻译有一些问题,题目中给出的
jacques
的是一个用户,因为,当我们执行id jacques
命令后可以看到相关的用户 ID 和 组 ID 等。
在 Linux 中查找文件,做常用的命令就是 find
. 在开始正式的操作之前,我们首先看一下用户 jacques
都有哪些文件,具体命令如下:
find / -user jacques
注:
①
/
表示从根目录开始查找,如果不指定查找的起始目录的话,find
命令会默认从当前执行find
命令所在的位置开始查找;②
-user jacques
表示查找所有者为用户jacques
的文件或文件夹。
返回的结果大致是下面这样的:
find: ‘/proc/1481/task/1481/fd/6’: No such file or directory find: ‘/proc/1481/task/1481/fdinfo/6’: No such file or directory find: ‘/proc/1481/fd/7’: No such file or directory find: ‘/proc/1481/fdinfo/7’: No such file or directory /tmp/gamelan /tmp/jacques /tmp/libWedgeit.so.1.2.3
其中,带有 /proc/1481/
的内容是 find
命令执行时产生的文件,数字 1481
就是当时正在运行的 find
命令在内存中的进程号(PID). 其余被正常查询出来的文件,如上面的 /tmp/gamelan
和 /tmp/jacques
以及 /tmp/libWedgeit.so.1.2.3
则是属于用户 jacques
的正常的文件。
接着,我们通过使用 find
命令的 -exec
参数将 find / -user jacques
命令查找出来的内容都复制到题目指定的 /root/findfiles
目录下(如果 /root/findfiles
目录不存在,则使用 mkdir
命令新建即可)。具体目录如下:
find / -user jacques -exec cp -a {} /root/findfiles/ \;
注:
①
-exec
参数用于在后面接 Shell 命令,该 Shell 命令以\;
作为结束标志;②
{}
用于指代前面find / -user jacques
输出的结果,cp -a
则相当于cp -pdr
, 即在“保留权限”、“复制软链接本身”和“递归复制”的要求下完成复制操作。所以,cp -a {} /root/findfiles/
的含义就是,将用户jacques
的所有文件复制到/root/findfiles/
目录下。
至此,我们就完成了本题。