Linux命令学习总结:cp命令

时间:2023-03-08 16:40:50

命令简介:

cp命令用来复制文件或目录。指令英文原义:copy

指令所在路径:/bin/cp

命令语法:

Usage: cp [OPTION]... [-T] SOURCE DEST

or: cp [OPTION]... SOURCE... DIRECTORY

or: cp [OPTION]... -t DIRECTORY SOURCE...

命令参数:

此命令参数是Red Hat Enterprise Linux Server release 5.7下cp命令参数,不同版本Linux的cp命令参数有可能不同。

参数

长参数

描叙

-a

等同于-dR

-b

若删除或者覆盖目标文件,将对目标文件进行备份,备份文件以备份的字符串结尾

-d

复制符号链接

-f

强制复制

-h

强制cp命令复制符号链接。缺省值是跟随符号链接,也就是将文件复制到符号链接指向处。

-i

交互式模式。覆盖目标文件之前先要进行询问

-l

建立硬链接,而非复制

-p

源目录或者文件的属性保留

-P

源目录或者文件的路劲保留

-r/-R

处理指定目录以及子目录

-v

--verbose

显示命令执行的详细信息

--help

显示命令在线帮助

--version

显示命令版本信息

 

使用示例:

 

1: 查看rmdir命令的帮助信息

[root@DB-Server ~]# cp --help

Usage: cp [OPTION]... [-T] SOURCE DEST

  or:  cp [OPTION]... SOURCE... DIRECTORY

  or:  cp [OPTION]... -t DIRECTORY SOURCE...

Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.

 

Mandatory arguments to long options are mandatory for short options too.

  -a, --archive                same as -dR --preserve=all

      --backup[=CONTROL]       make a backup of each existing destination file

  -b                           like --backup but does not accept an argument

      --copy-contents          copy contents of special files when recursive

  -d                           same as --no-dereference --preserve=link

  -f, --force                  if an existing destination file cannot be

                                 opened, remove it and try again

  -i, --interactive            prompt before overwrite

  -H                           follow command-line symbolic links

  -l, --link                   link files instead of copying

  -L, --dereference            always follow symbolic links

  -P, --no-dereference         never follow symbolic links

  -p                           same as --preserve=mode,ownership,timestamps

      --preserve[=ATTR_LIST]   preserve the specified attributes (default:

                                 mode,ownership,timestamps), if possible

                                 additional attributes: context, links,

                                 xattr, all

  -c                           same as --preserve=context

      --no-preserve=ATTR_LIST  don't preserve the specified attributes

      --parents                use full source file name under DIRECTORY

  -R, -r, --recursive          copy directories recursively

      --remove-destination     remove each existing destination file before

                                 attempting to open it (contrast with --force)

      --sparse=WHEN            control creation of sparse files

      --strip-trailing-slashes remove any trailing slashes from each SOURCE

                                 argument

  -s, --symbolic-link          make symbolic links instead of copying

  -S, --suffix=SUFFIX          override the usual backup suffix

  -t, --target-directory=DIRECTORY  copy all SOURCE arguments into DIRECTORY

  -T, --no-target-directory    treat DEST as a normal file

  -u, --update                 copy only when the SOURCE file is newer

                                 than the destination file or when the

                                 destination file is missing

  -v, --verbose                explain what is being done

  -x, --one-file-system        stay on this file system

  -Z, --context=CONTEXT        set security context of copy to CONTEXT

      --help     display this help and exit

      --version  output version information and exit

 

By default, sparse SOURCE files are detected by a crude heuristic and the

corresponding DEST file is made sparse as well.  That is the behavior

selected by --sparse=auto.  Specify --sparse=always to create a sparse DEST

file whenever the SOURCE file contains a long enough sequence of zero bytes.

Use --sparse=never to inhibit creation of sparse files.

 

The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.

The version control method may be selected via the --backup option or through

the VERSION_CONTROL environment variable.  Here are the values:

 

  none, off       never make backups (even if --backup is given)

  numbered, t     make numbered backups

  existing, nil   numbered if numbered backups exist, simple otherwise

  simple, never   always make simple backups

 

As a special case, cp makes a backup of SOURCE when the force and backup

options are given and SOURCE and DEST are the same name for an existing,

regular file.

 

Report bugs to bug-coreutils@gnu.org.

[root@DB-Server ~]# man cp

 

2: 拷贝文件file1并更名为file2

[root@DB-Server kerry]# ls

file1

[root@DB-Server kerry]# cp file1 file2

[root@DB-Server kerry]# ls

file1  file2

[root@DB-Server kerry]# 

 

3:拷贝kerry目录下文件到tmp目录下

[root@DB-Server ~]# cp /home/kerry/*  /tmp

[root@DB-Server ~]# cd /tmp

 

4:将目录下的所有目录包括子目录陆续复制到另外一个目录

[root@DB-Server ~]#cp -r /home/tomcat/ /tmp/bak

5: 复制时保留文件属性(保存与源文件相关联的修改日期、时间和访问控制列表等)

 

[root@DB-Server kerry]# ls -lrt

total 8

-rw-r--r-- 1 root root 3886 Jan 19 23:04 install.log.syslog

[root@DB-Server kerry]# cp -p install.log.syslog  install.log.syslog.bak1

[root@DB-Server kerry]# cp install.log.syslog install.log.syslog.bak2

[root@DB-Server kerry]# ls -lrt

total 24

-rw-r--r-- 1 root root 3886 Jan 19 23:04 install.log.syslog.bak1

-rw-r--r-- 1 root root 3886 Jan 19 23:04 install.log.syslog

-rw-r--r-- 1 root root 3886 Jan 19 23:10 install.log.syslog.bak2

Linux命令学习总结:cp命令

 

6: 以交换形式拷贝文件

 

[root@DB-Server kerry]# cp -i /var/log/*  ./

cp: overwrite `./acpid'? n

cp: overwrite `./anaconda.log'? n

cp: overwrite `./anaconda.syslog'? y

cp: overwrite `./anaconda.xlog'? n

cp: omitting directory `/var/log/audit'

cp: overwrite `./boot.log'? n

cp: overwrite `./boot.log.1'? n

cp: overwrite `./boot.log.2'? n