Linux文件管理_1

时间:2021-11-22 05:16:39
在Linux中,全部都是文件,所以文件管理在Linux上格外重要,在我们学习文件管理前,我们先学习几个关于文件的命令,之后才能更好的学习文件管理。
   目录
    pwd命令
    cd命令
    列出文件内容ls
    查看文件状态stat
    创建文件touch
    文件通配符
    复制命令cp
    移动与重命名mv
    删除rm
    显示目录树tree
    创建文件夹mkdir
    删除文件夹rmdir
    查看文件类型file
    拓展:rename&&shred

显示当前工作目录

  每个shell和系统进程都有一个当前的工作的目录
  CWD:current work directory
  显示当前的shell CWD的绝对路径pwd
    打印工作目录(当前所在目录)
  参数:
    -P 显示真实物理路径
    -L 显示连接路径(默认)

Linux文件管理_1

改变目录

  格式:cd [option] dir
  作用:改变目录
    切换到父目录:cd ..
    切换到当前用户主目录:cd
    切换至以前的工作目录:cd –
  选项:-P 直接进入原目录(非链接目录)
  相关的环境变量:
    PWD:当前目录文件
    OLDPWD:上一次目录路径  

列出当前目录的内容或指定目录

  格式:ls [option] [files|dirs]
  作用:列出当前目录的内容或指定目录
  用法:
     ls -a 显示所有文件
     ls -A 显示所有文件,除.、..
     ls -l 长列出
     ls -R 递归
     ls -ld 显示指定目录的详细信息。
     ls -1 竖显示
     ls -S 按文件大小降序排列
     ls -t 按修改时间(mtime)从新到旧排列
     ls -ut 按访问时间(atime) 从新到旧排列
     ls -U 按文件存放的先后顺序
     ls -X 按文件后缀排序
     ls -i 显示文件的inode号
     ls -Z 显示文件的context值

 Linux文件管理_1

查看文件的状态

  命令:stat
  文件:metadata,data
  三个时间戳:
      access time:访问时间,atime,读取文件内容
      modify time:修改时间,mtime,改变文件内容(数据)
      change time:改变时间,ctime,元数据发生改变

Linux文件管理_1

创建空文件和刷新时间

  格式:touch [option]… file …
  作用:创建空文件和刷新时间
  OPTION:
    -a 仅改变atime和ctime
    -m 仅改变mtime和ctime
    -t [[CC]YY]MMDDhhmm[.ss]
      指定atime和mtime的时间戳
  -c 如果文件不存在,则不予创建
  touch filename :
    当文件不存在时,则创建一个空文件,名为filename
    当文件已存在时,则更新期时间戳
    -a 仅更新atime,ctime
    -m 仅更新mtime, ctime
    touch filename 更新全部时间戳。

Linux文件管理_1

文件通配符

  在好多时候我们可能需要查找有相同字符,或者有一定规则的名字的文件或目录,如果我们还是利用手工一点一点的去敲出来,无疑会浪费我们好多时间,此时,我们可以利用通配符来进行文件匹配,可以较少好多我们的时间,快捷,方便,首先我们看看都有那些通配符:
    * 匹配零个或多个字符
    ? 匹配任何单个字符
    ~ 当前用户家目录
    ~mage 用户mage家目录
    ~+ 当前工作目录
    ~- 前一个工作目录
    [0-9] 匹配数字范围
    [a-z]: 字母
    [A-Z]: 字母
    [wang] 匹配列表中的任何的一个字符
    [^wang] 匹配列表中的所有字符以外的字符

  还有一种就是预定义的字符类,同样是作为通配符使用
  预定义的字符类: #man 7 glob
    [:digit:]: 任意数字, 相当于0-9
    [:lower:]: 任意小写字母
    [:upper:]: 任意大写字母
    [:alpha:]: 任意大小写字母
    [:alnum:]: 任意数字或字母
    [:blank:]: 水平空白字符
    [:space:]: 水平或垂直空白字符
    [:punct:]: 标点符号
    [:print:]:可打印字符
    [:cntrl:]: 控制(非打印)字符
    [:graph:]: 图形字符
    [:xdigit:]: 十六进制字符
  接下来我们通过一些演示来说明如何使用通配符
    1、显示/var目录下所有以l开头, 以一个小写字母结尾, 且中间出现至少一位数字的文件或目录

Linux文件管理_1
    2、显示/etc目录下以任意一位数字开头, 且以非数字结尾的文件或目录

Linux文件管理_1
    3、显示/etc/目录下以非字母开头, 后面跟了一个字母及其它任意长度任意字符的文件或目录

Linux文件管理_1
    4、 显示/etc/目录下所有以rc开头, 并后面是0-6之间的数字,其它为任意字符的文件或目录

Linux文件管理_1

 

复制文件和目录cp

  命令:cp
  格式:cp[option]...[-T] source dest
    cp[option]...source...directory
    cp[option]... -t directory source
  说明:
    cp A B
     A是文件
      1.如果目标不存在,新建B,并将A中的数据拷贝到B中
      2.如果目标存在,且B是文件,将A中的数据覆盖到B中
      3.如果B是目录,在B下新建一个与源文件同名的文件并将内容进去
Linux文件管理_1
     A是目录:(需要参数 -r)
      1.如果B不存在,则创建指定目录,则创建指定目录,复制A目录下文件到B目录
      2.如果B存在:
        1.如果B是文件:报错
        2.如果B是目录:则将包括A目录一起复制到B
Linux文件管理_1
   cp A B C D H
     如果ABCD是文件:
      当 H 是目录且存在的情况下才能拷贝
      如果ABCH是目录:(必须用 -r)
      当 H 是目录且存在的情况下才能拷贝,将包括ABCD目录一起复制到H下

Linux文件管理_1

   cp常用选项:(cp本身是直接复制原文件的,而不是链接文件)
     -i:prompt before overwrite 覆盖前提示
     -n:do not overwrite an existing file 不覆盖已存在的文件(也不追加)
     -r,-R:copy directories recursively 递归拷贝目录以及文件内容
     -a:same as -dR --preserve=all 拷贝全部文件且权限不变
     -d:same as --no-dereference --preserve=links
        若文件为链接文件,则只复制链接属性,不复制源文件本身
     -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用)
     -f:当覆盖时,如目的文件的缺少写权限时,强制删除目的文件,并新建再填充内容。当有-n时,无效
     -v:显示拷贝的过程

Linux文件管理_1

Linux文件管理_1

移动和重命名文件

 

  格式:mv [OPTION]... A(源)... B(目的)
  作用:移动和重命名文件
  参数:-i: 交互式(会询问)
     -f: 强制(不询问)
  说明:一般我们会用这个命令进行移动和重命令,如果我们将文件移动到不同的文件,就是移动,如果我们将文件移动到原目录,就是重命令

Linux文件管理_1

删除操作

  格式:rm [OPTION]... FILE...
  作用:删除文件或目录
  参数:-i: 交互式
     -f: 强制删除
     -r: 递归(可以递归删除文件和目录)

Linux文件管理_1

目录操作

  tree 显示目录树
    -d: 只显示目录
    -L level: 指定显示的层级数目
    -P pattern: 只显示由指定pattern匹配到的路径
  mkdir 创建目录
    -p: 存在于不报错, 且可自动创建所需的各目录
    -v: 显示详细信息
    -m MODE: 创建目录时直接指定权限
  rmdir 删除空目录(可以用rm代替)
    -p: 递归删除父空目录
    -v: 显示详细信息

Linux文件管理_1

确定文件内容

  格式:file [options] <filename>...
   常用选项:
    -b 列出文件辨识结果时, 不显示文件名称
    -f filelist 列出文件filelist中文件名的文件类型
    -F 使用指定分隔符号替换输出文件名后默认的”:”分隔符
    -L 查看对应软链接对应文件的文件类型
    --help 显示命令在线帮助

Linux文件管理_1

拓展:

  rename:批量改名 '.txt' '.doc'  *.txt
  shred 粉碎功能(不做演示)

Linux文件管理_1