第二周

Linux上的文件管理类命令

  • cp命令:
    单源复制:cp [OPTION]… [-T] SOURCE DEST
    多源复制:cp [OPTION]… SOURCE… DIRECTORY:目标必须是目录;
    cp [OPTION]… -t DIRECTORY SOURCE…

    • 常用选项:
      -i,–interactive:交互式复制,即覆盖目标文件之前提醒用户确认;
      -f,force:强制覆盖目标文件;
      -R,-r,–recursive:递归复制目录及其内容;
      -P,–no-dereference:复制链接文件本身,而非默认的复制链接文件指向的原文件内容;
      -d:相当于–no-dereference;复制链接本身(默认为复制链接文件的原文件内容);
      –preserve[=ATTR_LIST]:
      指明保留的原文件属性列表;
      默认为default: mode, ownership, timestamps;
      还包括其它属性:context(安全上下文), links(符号链接), xattr(额外属性), all;
      -a,–archive:归档复制;备份时才会使用;
      相当于-dR –preserve=all;
      注意:仅管理员有权限复制时保留属主和属组属性;
    • 示例:
      cp /etc/grub2.cfg /tmp/:复制文件到指定目录;
      cp /etc/grub2.cfg /tmp/mygrub.cfg:复制重命名;
      cp /etc/fstab /etc/grub2.cfg /tmp/mytestdir:目标目录必须存在,否则错误;
  • mv命令:
    单源移动:mv [OPTION]… [-T] SOURCE DEST
    多源移动:mv [OPTION]… SOURCE… DIRECTORY
    mv [OPTION]… -t DIRECTORY SOURCE…

    • 常用选项:
      -i,–interactive:交互式复制,移动时,如果目标文件存在时提示用户确定是否覆盖(仅root用户);
      -f,force:强制移动,覆盖前不提示;
    • 示例:
      mv etc/grub2.cfg /tmp:移动文件到指定目录;
      mv etc/grub2.cfg /etc/grub2.bkp:重命名
  • rm命令:
    rm [OPTION]… FILE…

    • 常用选项:
      -r, -R, –recursive:递归删除目录及其内容;
      -f,force:强制删除,不提示确认;
      -i,–interactive:交互式,提示确认;
    • 示例:
      rm /tmp/a.txt:提示确认删除;
      \rm /tmp/test.txt:使用命令本来功能;即不使用别名功能;
      rm -rf /tmp/rootfs:强制删除非目录;

bash的工作特性

  • 命令的执行状态结果:
    bash用一个特殊变量来保存命令的执行状态结果:$?
    通过引用来保存下来或直接调用–“命令引用”:就是命令有了内层、外层(命令嵌套),引用命令的执行结果;
    COMMAND
    $(COMMAND)

    • 示例:
      echo ?mkdir(echo hello)
      mkdir $(date +%F-%H-%M-%S)
      ls -l which cat
    • 命令的执行状态结果:
      成功:0
      失败:1-255
    • bash中的引用:
      ”:强引用;不做变量替换;
      “”:弱引用;可实现变量替换;
      :命令引用,引用命令的执行结果;
  • 命令行展开:
    • 把命令行中给定的特殊符号自动替换为相应字符串的机制;
      ~:自动替换为家目录;
      ~USERNAME:自动替换为指定的用户家目录;
    • {}:
      可承载一个以逗号分隔的路径列表,能够将其展开为多个独立的路径;
    • 示例:
      /tmp/{x,y,z}=/tmp/x /tmp/y tmp/z
      /tmp/{x/y,m/{m,n}}=/tmp/x/y /tmp/m/m /tmp/m/n
      /tmp/{x,y}/z=/tmp/x/z /tmp/y/z

文件的元数据信息:

  • stat命令:
    查看文件属性信息(元数据)或文件系统状态

    • 显示内容:
      文件路径
      文件大小
      文件占用block
      每个IO block大小
      文件类型
      文件所在设备的主/次设备号
      文件的inode
      文件被硬链接次数
      文件权限
      文件的属主UID
      文件的属组GID
      环境(SELinux)
      access time:最近访问时间,文件最近一次被访问的时间;
      modify time:最近更改时间,文件最近一次被修改(内容)的时间(即数据);只要数据变了元数据一定会变;
      change time:最近改变时间文件最近一次改动的时间(元数据);
  • touch命令:修改文件的三个时间戳;可创建空文件
    touch [OPTION]… FILE…

    • 常用选项:
      -t STAMP:[[CC]YY]MMDDhhmm[.ss]
      年月日时分秒
      -a:仅修改atime;
      -m:仅修改mtime;
      -c;不创建文件;
    • 示例:
      touch $(date +%F-%H-%M-%S)
      touch -t 20150306 -a yum.log
      touch /tmp/a.txt:创建空文件;
      file /tmp/a.txt:查看touch创建文件类型,为空;

命令的别名:

  • 语法:
    alias(OPTIONS)(ARGUEMENTS)
  • 选项:
    -p:打印已经设置的命令别名。
  • 参数:
    命令别名设置:定义命令别名,格式为“命令别名=‘实际命令’”
  • 示例:
    alias l=‘ls -lsh’

练习:

  1. 创建/tmp目录下的:a_c, a_d, b_c, b_d

    17cfcd52-da72-44dd-b267-da671cc0cc77

    079b3f72-6425-49ca-98d4-d7e3c18e5a62

  2. 创建/tmp/mylinux目录下的:
    mylinux/
    ├── bin
    ├── boot
    │ └── grub
    ├── dev
    ├── etc
    │ ├── rc.d
    │ │ └── init.d
    │ └── sysconfig
    │ └── network-scripts
    ├── lib
    │ └── modules
    ├── lib64
    ├── proc
    ├── sbin
    ├── sys
    ├── tmp
    ├── usr
    │ └── local
    │ ├── bin
    │ └── sbin
    └── var
    ├── lock
    ├── log
    └── run
    5dfbfe6c-12dc-4e9a-a397-4682383f43fa4e611401-fe0c-4886-babb-2df50d457e49
  3. 显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录
    ffc397c5-35ef-4ab6-a10d-d9678775c3c5
  4. 显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录
    500cc600-5b99-45cf-9940-24d14c92c274
  5. 显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录
    a2e9f5c7-90ae-4f7f-a5ed-107b670b3c12
  6. 在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22
    aaca453d-1f09-4bb3-8d8a-8341f8ac45df
    143775eb-cfb4-415c-8147-df10f3642461
    a01cffa5-f8d6-4a9c-ad05-d1a2cf047c03
  7. 复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
    e3009ba5-0d52-4114-b656-8384a03b9cf6
    67172903-48c2-49a2-9b93-61d4d883b1ee
    4b88678c-af34-4cd6-9006-af8d7ff198b0
  8. 复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中
    6a50230d-2238-4ddc-b031-252fecdcf9f0
  9. 复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中
    a0fd2bdc-2740-4d63-ba0c-b3becfbc6afd

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/112430

发表评论

登录后才能评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.

评论列表(1条)

  • 马哥教育
    马哥教育 2018-08-28 14:28

    写的很棒,希望可以多多注意排版问题,希望可以用多种方式来解答问题

联系我们

400-080-6560

在线咨询

工作时间:周一至周五,9:30-18:30,节假日同时也值班

QR code