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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现至少位数字的文件或目录 显示/etc目录下以任意一位...
    Aubin阅读 1,823评论 0 2
  • (一)基本命令 命令格式: 命令 参数 1.ls 显示文件名,等同于dos下dir命令 命令格式:ls [opti...
    飞羽孟德阅读 2,009评论 0 3
  • Linux常用命令大全(非常全!!!)原文链接:http://www.cnblogs.com/yjd_hycf_s...
    JokerJin阅读 631评论 0 3
  • linux复制指定目录下的全部文件到另一个目录中 复制指定目录下的全部文件到另一个目录中 文件及目录的复制是经常要...
    pdmao阅读 2,299评论 0 0
  • 系统信息cat /etc/os-release 查看系统详细信息(只在centos和redhat上试过生效)arc...
    MicoCube阅读 731评论 0 0