上QQ阅读APP看书,第一时间看更新
2.2.1 复制文件:cp
cp命令用来复制文件或目录。当复制多个文件时,目标文件参数必须为已经存在的目录。cp命令默认不能复制目录,复制目录必须使用-R选项。cp命令具备ln命令的功能。语法为:cp [选项] [参数],cp命令常用的参数如表2.2所示。
表2.2 cp命令常用参数及其说明
示例2-1将演示cp命令的用法,部分显示结果省略。
【示例2-1】
#以下演示cp命令的用法 [root@CentOS ~]# cd /usr/local/nginx/conf nginx.conf #如需显示执行过程,可以使用以下选项 #当使用cp命令复制单个文件时,第1个参数表示源文件,第2个参数表示目标文件 [root@CentOS conf]# cp -v nginx.conf nginx.conf.20200412 `nginx.conf' -> `nginx.conf.20200412' [root@CentOS conf]# ls -l nginx.conf nginx.conf.20200412 -rw-r--r--. 1 root root 2685 Apr 11 03:15 nginx.conf -rw-r--r--. 1 root root 2685 Apr 12 20:33 nginx.conf.20200412 #复制多个文件 [root@CentOS conf]# cp -v nginx.conf nginx.conf.20200412 backup/ `nginx.conf' -> `backup/nginx.conf' `nginx.conf.20200412' -> `backup/nginx.conf.20200412' [root@CentOS conf]# ll nginx.conf nginx.conf.20200412 backup/ -rw-r--r--. 1 goss goss 2685 Apr 12 20:47 nginx.conf -rw-r--r--. 1 root root 2685 Apr 12 20:59 nginx.conf.20200412 backup/: total 8 -rw-r--r--. 1 root root 2685 Apr 12 21:01 nginx.conf -rw-r--r--. 1 root root 2685 Apr 12 21:01 nginx.conf.20200412 #复制文件夹 [root@CentOS nginx]# cp conf conf.bak cp: omitting directory `conf' [root@CentOS nginx]# cp -r conf conf.20200412 [root@CentOS nginx]# ls –l total 40 drwxr-xr-x. 2 root root 4096 Apr 12 20:33 conf drwxr-xr-x. 2 root root 4096 Apr 12 20:33 conf.20200412 [root@CentOS goss]# su – goss #复制时保留文件的原始属性 [goss@CentOS ~]$ cp -a /usr/local/nginx/ . cp: cannot access '/usr/local/nginx/uwsgi_temp': Permission denied cp: cannot access '/usr/local/nginx/fastcgi_temp': Permission denied cp: cannot access '/usr/local/nginx/scgi_temp': Permission denied cp: cannot access '/usr/local/nginx/client_body_temp': Permission denied cp: cannot access '/usr/local/nginx/proxy_temp': Permission denied [goss@CentOS ~]$ ls –l drwxr-xr-x. 12 goss goss 4096 Apr 12 20:33 nginx [goss@CentOS ~]$ ll total 2784 drwxr-xr-x. 12 goss goss 4096 Apr 12 20:33 nginx [root@CentOS goss]# cp -a nginx/ nginx.bak [root@CentOS goss]# ls -l total 2788 drwxr-xr-x. 12 goss goss 4096 Apr 12 20:33 nginx drwxr-xr-x. 12 goss goss 4096 Apr 12 20:33 nginx.bak [root@CentOS goss]# cp -r nginx nginx.root [root@CentOS goss]# ls -l total 2792 drwxr-xr-x. 12 goss goss 4096 Apr 12 20:33 nginx drwxr-xr-x. 12 goss goss 4096 Apr 12 20:33 nginx.bak drwxr-xr-x. 12 root root 4096 Apr 12 20:35 nginx.root [root@CentOS conf]# cp -i /usr/local/nginx/conf/nginx.conf . cp: overwrite './nginx.conf'? n [root@CentOS conf]# cp -f /usr/local/nginx/conf/nginx.conf . [root@CentOS conf]# #并不复制文件本身,而是创建当前文件的软链接 [root@CentOS conf]# cp -s nginx.conf nginx.conf_s [root@CentOS conf]# ls -l lrwxrwxrwx. 1 root root 10 Apr 12 20:49 nginx.conf_s -> nginx.conf [root@CentOS conf]# md5sum nginx.conf /usr/local/nginx/conf/ng nginx.conf nginx.conf.bak nginx.conf.default nginx.conf.mv [root@CentOS conf]# md5sum nginx.conf /usr/local/nginx/conf/nginx.conf 1181c1834012245d785120e3505ed169 nginx.conf 30d53ba50698ba789d093eec830d0253 /usr/local/nginx/conf/nginx.conf [root@CentOS conf]# cp -b /usr/local/nginx/conf/nginx.conf . cp: overwrite './nginx.conf'? y [root@CentOS conf]# md5sum nginx.conf* 30d53ba50698ba789d093eec830d0253 nginx.conf 1181c1834012245d785120e3505ed169 nginx.conf~
cp命令可以复制一个或多个文件,当复制多个文件时,最后一个参数必须为已经存在的目录,否则会提示错误。如果忽略提示信息,则可以使用“-f”选项。
说明:为防止用户在不经意的情况下使用cp命令破坏另一个文件,如用户指定的目标文件名已存在,用cp命令复制文件后,这个文件就会被覆盖,“i”选项可以在覆盖之前询问用户。