红帽RHCSA认证考试:查找并复制指定用户的全部文件

题目描述

查找文件

  • 查找当 jacques 所有的所有文件并将其副本放入 /root/findfiles 目录。

操作步骤

在 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/ 目录下。

至此,我们就完成了本题。