目标目录不存在是:
[root@localhost test]# cp -a test3 test4 [root@localhost test]# ll -rw-r--r-- 1 root root 0 10-28 14:48 log.log drwxr-xr-x 6 root root 4096 10-27 01:58 scf drwxrwxrwx 2 root root 4096 10-28 14:47 test3 drwxrwxrwx 2 root root 4096 10-28 14:47 test4 drwxr-xr-x 3 root root 4096 10-28 15:11 test5说明:
注意目标目录存在与否结果是不一样的。目标目录存在时,整个源目录被复制到目标目录里面。
实例四:复制的 log.log 建立一个连结档 log_link.log
命令:
cp -s log.log log_link.log
输出:
[root@localhost test]# cp -s log.log log_link.log [root@localhost test]# ll lrwxrwxrwx 1 root root 7 10-28 15:18 log_link.log -> log.log -rw-r--r-- 1 root root 0 10-28 14:48 log.log drwxr-xr-x 6 root root 4096 10-27 01:58 scf drwxrwxrwx 2 root root 4096 10-28 14:47 test3 drwxrwxrwx 2 root root 4096 10-28 14:47 test4 drwxr-xr-x 3 root root 4096 10-28 15:11 test5说明:
那个 log_link.log 是由 -s 的参数造成的,建立的是一个『快捷方式』,所以您会看到在文件的最右边,会显示这个文件是『连结』到哪里去的!
实例五:定义别名命令baketc,每天将/etc/目录下所有文件,备份到/testdir独立的子目录下, 并要求子目录格式为 backupYYYY-mm-dd ,备份过程可见
[root@localhost ~]# mkdir /testdir #目标目录需要事先存在,否则会出现报错 [root@localhost ~]# alias baketc='cp -av /etc/ /testdir/backup$(date +%F)' [root@localhost ~]# alias baketc alias baketc='cp -av /etc/ /testdir/backup$(date +%F)' [root@localhost ~]# baketc ... `/etc/rc.d/rc6.d/K75ntpdate' -> `/testdir/backup2016-12-29/rc.d/rc6.d/K75ntpdate' `/etc/rc.d/rc6.d/K60crond' -> `/testdir/backup2016-12-29/rc.d/rc6.d/K60crond' `/etc/rc.d/rc6.d/K89netconsole' -> `/testdir/backup2016-12-29/rc.d/rc6.d/K89netc ... [root@localhost ~]# ls /testdir backup2016-12-29