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

题目描述

查找当 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/ 目录下。

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


荒原之梦网全部内容均为原创,提供了涵盖考研数学基础知识、考研数学真题、考研数学练习题和计算机科学等方面,大量精心研发的学习资源。

意见反馈 | 内容纠错 | 微信 | QQ | 公众号 | 知乎 | 微博 | 博客园 |CSDN | B 站 | 电子邮件
豫 ICP 备 17023611 号-1 | 公网安备 - 荒原之梦 豫公网安备 41142502000132 号 | SiteMap
Copyright © 2017-2024 ZhaoKaifeng.com 版权所有 All Rights Reserved.

Copyright © 2024   zhaokaifeng.com   All Rights Reserved.
豫ICP备17023611号-1
 豫公网安备41142502000132号

荒原之梦 自豪地采用WordPress