Linux系统cp命令、mkdir命令的功能及用法

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}} 

你可能感兴趣的:(Linux系统cp命令、mkdir命令的功能及用法)