cp命令作用:拷贝文件和目录
一、格式
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
二、解释说明
如果源是一个文件,目标也是一个文件,则覆盖这个文件
如果源是一个文件,目标文件不存在,则创建新文件并命名
如果源是一个文件,目标示一个目录,则复制源到目标目录中,保持原名字
如果源是多个文件,目标是一个文件,失败
如果源是多个文件,目标是目录,则复制到目标目录
如果源是多个文件,目标目录不存在,失败
如果源是一个目录,目标是一个文件且存在,失败
如果源是一个目录,目标目录xxx不存在,创建新目录xxx
如果源是一个目录,目标目录存在,复制源目录至目标目录中,成为子目录,且保持原名
三、查用选项OPTION
cp -r 递归,可复制目录,如果复制目录必须加此选项
cp -R 复制目录
cp -i 交互式,会提醒用户是否覆盖,linux默认的别名中已开启此功能
cp -f 强行
cp -p 保留权限、属主、时间戳
cp -d 默认copy链接文件是复制链接指向的源文件,-d 复制链接文件本身
cp -L 保存链接所指向的文件,默认cp 就是,不需要-L
cp -a 归档复制,常用于备份,相当于cp -dr --preserve=all
cp -v 复制过程可见
cp -s 创建新的符号链接文件,指向原符号链接文件,能保证链接文件可以使用
cp -u 只复制更新的文件
--backup 如果有目标文件,覆盖的时候会将覆盖前的源目标文件改名为xxx~,然后再把新文件进行覆盖
--backup=numbered 如果有目标文件,覆盖的时候会将源目标文件创建新的文件并加上序号
--preserve[=ATTR_LIST] preserve the specified attributes (default:mode,ownership,timestamps), if possible additional attributes: context, links, xattr, all
四、示例
1、把目录中的隐藏文件和非隐藏文件,都复制到指定目录的方法,不创建新目录或子目录
# cp -r /etc/skel/. /home/test
2、只复制目录中的隐藏文件
# cp -r /etc/skel/.[^.]* /home/test