cp命令的功能:
复制文件和目录cp(copy的简写)(外部命令)(只适合复制普通文件,不适合特殊文件,特殊文件不能使用传统的复制必须加-a)
cp命令的用法:
cp [OPTION]... [-T] SOURCE DEST 文件到文件
实例:cp /etc/fstab /data/fstab.bak(大小一样,时间变了,内容进行复制,属性发生改变)
cp [OPTION]... SOURCE... DIRECTORY
实例:cp /etc/fstab /etc/profile /date 多个文件复制到一个目录下
cp [OPTION]... -t DIRECTORY SOURCE...
实例:cp -t /data /etc/bashrc /etc/motd (反过来了,但是需要加-t,用的不会很多)
cp SRC DEST
SRC是文件:
如果目标不存在:新建DEST,并将SRC中内容填充至DEST中
如果目标存在:
如果DEST是文件:将SRC中的内容覆盖至DEST中基于安全,建议为cp命令使用-i选项
如果DEST是目录:在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中
cp SRC... DEST
SRC...:多个文件
DEST必须存在,且为目录,其它情形均会出错
cp SRC DEST
SRC是目录:此时使用选项:-r
如果DEST不存在:则创建指定目录,复制SRC目录中所有文件至DEST中
如果DEST存在:
如果DEST是文件:报错
如果DEST是目录:
cp常用选项
-i:覆盖前提示 (root用户使用的cp是alias别名,而普通用户使用的cp是原始的cp命令)–n:不覆盖,注意两者顺序
-r, -R: 递归复制目录及内部的所有内容
-a: (archive)归档(可以理解为备份),相当于-dR --preserv=all主要用于备份
-d:--no-dereference --preserv(保留)=links 不复制原文件,只复制链接名(保留链接属性)
-p: 等同--preserv=mode,ownership,timestamp(只保留权限、所有者、时间戳)
-v: --verbose(显示详细的过程)
-f: --force(强制)
-u:--update 只复制源比目标更新文件或目标不存在的文件
-b: 目标存在,覆盖前先备份
--backup(可以加控制信息)=numbered(定义了格式) 目标存在,覆盖前先备份加数字后缀
mkdir 的功能:创建目录
mkdir的用法和选项:
mkdir [OPTION]... DIRECTORY...
-p: 存在于不报错,且可自动创建所需的各目录
-v: 显示详细信息
-m MODE: 创建目录时直接指定权限
实例:
1、定义别名命令baketc,每天将/etc/目录下所有文件,备份到/app独立的子目
录下,并要求子目录格式为 backupYYYY-mm-dd,备份过程可见
alias baketc='cp -av /etc/ /data/backup`date +%F`'
2、创建/app/rootdir目录,并复制/root下所有文件到该目录内,要求保留原有
权限
mkdir -pv /app/rootdir:创建/app/rootdir目录
cp -pr /root /app/rootdir
3.如何创建/testdir/dir1/x, /testdir/dir1/y, /testdir/dir1/x/a, /testdir/dir1/x/b, /testdir/dir1/y/a, /testdir/dir1/y/b
mkdir -p /testdir/dir1/{x,y}/{a,b}
4.如何创建/testdir/dir2/x, /testdir/dir2/y, /testdir/dir2/x/a,/testdir/dir2/x/b
mkdir -p /testdir/dir2/x/{a,b} /testdir/dir2/y
mkdir -pv /testdir/dir2/{x/{a,b},y}
5. 如何创建/testdir/dir3, /testdir/dir4, /testdir/dir5, /testdir/dir5/dir6,/testdir/dir5/dir7
mkdir -pv /testdir/dir{3,4,5/dir{6,7}}
6.使用命令行展开功能,创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b,在/tmp目录下创建目录:x_y, x_z, q_y, q_z
mkdir -pv /tmp/{a1/{a,b},a2,{x,q}_{y,z}}