我们可以使用 cp 命令,把目录或者文件复制一份,放到一个指定的地方。cp 就是 copy ,也就是复制的意思。 先在我的桌面上创建一个文件 ... touch README.md ... 下面,我们复制一份这个文件,放到 project 这个目录的下面 ... 输入 cp ... 这个命令有两个参数,第一个参数是要复制的东西, 第二个参数是复制到的位置 .. 这里要复制的东西的是 README.md ... 把它复制到 project 目录的下面 ...
cp README.md project/
查看一下当前的目录 ... README.md 仍然在这里 ... 查看一下 project 目录 ... 在它下面会有一个刚才复制的 README.md 文件。你想同时复制多个文件,可以在要复制的文件那里使用 * 号来表示多个文件。比如 *.jpg 表示所有的 jpg 格式的文件, *.css 表示所有的 css 文件。
下面,我们可以再去复制一下整个 project 目录,并且把它放到当前目录的下面,命名为 project_bak ... 要复制目录,我们需要使用一个大写的 R 参数 ... 它表示 recursive ,递归的去复制。
输入 cp ... 想输出详细的信息,可以用一个 -v 选项, v 就是 verbose ... 后面再加上一个 -R ... 或者可以直接用一个小横线,然后是要使用的不同的选项,一个 v 一个 R ... 要复制的目录是当前目录下的 project ,所以可以直接输入这个目录的名字,如果要复制的目录在其它的地方,你要使用这个目录的绝对的位置,或者相对于当前目录的位置。
把它复制到当前目录的下面,命名为 project_bak ...
cp -vR project project_bak
ls -lR project_bak
你会发现, project_bak 里面的东西就是 project 目录的复制品 ... 这里需要注意一下,这些复制品跟原来的文件是有区别的,比如它们的拥有者,最近的修改日期等等,这些都会发生变化 ...
ls -l
这里 project 的修改日期是 xx:xx ,复制之后的 project_bak 的修改时间是 xx:xx ,包括这个目录里的所有文件的修改时间还有拥有者,都会发生变化 ...
如果你想保留原来的这些信息,可以用一个 -p 选项,它应该表示的是 preserve,去保留原有的一些信息。
我们可以先修改一下 project 目录还有它里面的东西的拥有者 .. 现在它们都属于 wanghao 这个用户,我们可以改成 root 用户 ... 这里用的是 chown 命令 ...
sudo chown -R root project
chown 就是 change owner ,-R 选项表示递归,root 就是用户的名字,project 是要修改拥有者的目录的名字 ... 因为我们要把拥有者修改成 root,所以这就需要用到超级管理员的权限,这样需要在命令的前面加上 sudo ...
完成以后,再查看一下 project ... ls -l project
你会看到 project 的拥有者现在变成了 root ... 下面,我们再去复制一下这个目录 ... 因为我们要保留文件和目录的拥有者,并且这个拥有者是 root ,所以我们也需要用到管理员的权限,这就需要在命令的前面加上一个 sudo ...
sudo cp ,先用一个 -p 选项要,然后再加上一个大写的 R ,表示递归。接着是要复制的文件,这里还是 project 这个目录,空格分隔一下 ... 复制之后的目录的名字是 project_bak_01
sudo cp -pR project project_bak_01
完成以后,再查看一下 ... ls -l ,你会看到 project 还有 project_bak_01 这两个目录的拥有者都是 root,并且它们的最近的修改日期也是一样的。