Linux文件管理

1、文件系统结构

/boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录

/bin:所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序

/sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序

/lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)

/lib64:专用于x86_64系统上的辅助共享库文件存放位置

/etc:配置文件目录

/home/USERNAME:普通用户家目录

/root:管理员的家目录

/media:便携式移动设备挂载点

/mnt:临时文件系统挂载点

/dev:设备文件及特殊文件存储位置

  b: block device,随机访问

  c: character device,线性访问

/opt:第三方应用程序的安装位置

/srv:系统上运行的服务用到的数据

/tmp:临时文件存储位置

/usr: universal shared, read-only data 系统资源文件

  bin: 保证系统拥有完整功能而提供的应用程序

  sbin:

  lib:32位使用

  lib64:只存在64位系统

  include: C程序的头文件(header files)

  share:结构化独立的数据,例如doc, man等

  local:第三方应用程序的安装位置

  bin, sbin, lib, lib64, etc, share

/var: variable data files 变量数据文件

  cache: 应用程序缓存数据目录

  lib: 应用程序状态信息数据

  local:专用于为/usr/local下的应用程序存储可变数据

  lock: 锁文件

  log: 日志目录及文件

  opt: 专用于为/opt下的应用程序存储可变数据

  run: 运行中的进程相关数据,通常用于存储进程pid文件

  spool: 应用程序数据池

  tmp: 保存系统两次重启之间产生的临时数据

/proc: 用于输出内核与进程信息相关的虚拟文件系统

/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统

/selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置

2、Linux下文件类型

- 普通文件

d 目录文件

b 块设备

c 字符设备

l  符号链接文件

p 管道文件pipe

s 套接字文件socket

3、相对路径与绝对路径

相对路径:不以斜线开始,指定相对于当前工作目录或某目录的位置,可以作为一个简短的形式指定一个文件名

绝对路径:以正斜杠开始,完整的文件的位置路径,可用于任何想指定一个文件名的时候

基名:basename

目录名:dirname

4、文件通配符

* 匹配零个或多个字符

? 匹配任何单个字符

~ 当前用户家目录

~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:]:十六进制字符

5、相关命令

(1) pwd  显示当前绝对路径

   -P 显示真实物理路径

   -L 显示链接路径(默认)

(2) cd   改变目录

  cd ..  切换至父目录

  cd -  切换至上一个工作目录

  cd   切换至当前用户的主目录

(3) ls  列出当前目录的内容或指定目录

  ls -a 包含隐藏文件

  ls -l 显示额外的信息

  ls -R 目录递归

  ls -ld 目录和符号链接信息

  ls -1 文件分行显示

  ls -S 按从大到小排序

  ls -t 按mtime排序

  ls -u 配合-t选项,显示并按atime从新到旧排序

  ls -U 按目录存放顺序显示

  ls -X 按文件后缀排序

(4) stat  查看文件的状态

   三个时间戳:

    access time 访问时间,atime,读取文件内容

    modify time 修改时间, mtime,改变文件内容(数据)

    change time 改变时间, ctime,元数据发生改变

(5) touch  创建文件和刷新时间

  touch [OPTION]... FILE...

    -a 仅改变 atime和ctime

    -m 仅改变 mtime和ctime

    -t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的时间戳

    -c 如果文件不存在,则不予创建

(6) cp  复制文件和目录

  cp [OPTION]... [-T] SOURCE DEST

  cp [OPTION]... SOURCE... DIRECTORY

  cp [OPTION]... -t DIRECTORY SOURCE...

  cp SRC DEST

    -i 覆盖前提示

    -n 不覆盖,注意两者顺序

    -r, -R 递归复制目录及内部的所有内容

    -a 归档,相当于-dR --preserv=all

    -d --no-dereference --preserv=links 不复制原文件,只复制链接名

    --preserv[=ATTR_LIST]

      mode: 权限

      ownership: 属主属组

      timestamp

      links

      xattr

      context

      all

    -p 等同--preserv=mode,ownership,timestamp

    -v --verbose 显示详细过程

    -f --force 强制复制

    -u --update 只复制源比目标更新文件或目标不存在的文件

    -b 目标存在,覆盖前先备份,形式为 filename~

    --backup=numbered 目标存在,覆盖前先备份加数字后缀

(7) mv   移动和重命名文件

  mv [OPTION]... [-T] SOURCE DEST

  mv [OPTION]... SOURCE... DIRECTORY

  mv [OPTION]... -t DIRECTORY SOURCE...

  常用选项:

    -i 交互式

    -f 强制

    -b 目标存在,覆盖前先备份

(8) rm  删除

  rm [OPTION]... FILE...

  常用选项:

    -i 交互式

    -f 强制删除

    -r 递归

    --no-preserve-root 删除/

(9) file  确定文件内容

  file [options] <filename>...

    -b 列出文件辨识结果时,不显示文件名称

    -f filelist 列出文件filelist中文件名的文件类型

    -F 使用指定分隔符号替换输出文件名后默认的”:”分隔符

    -L 查看对应软链接对应文件的文件类型

    --help 显示命令在线帮助

(10) 目录操作

tree 显示目录树

  -d: 只显示目录

  -L level:指定显示的层级数目

  -P pattern: 只显示由指定pattern匹配到的路径

mkdir 创建目录

  -p: 存在于不报错,且可自动创建所需的各目录

  -v: 显示详细信息

  -m MODE: 创建目录时直接指定权限

rmdir 删除空目录

  -p: 递归删除父空目录

  -v: 显示详细信息

rm -r 递归删除目录树

5、硬链接和软链接

(1) 硬链接

  创建硬链接会增加额外的记录项以引用文件

  对应于同一文件系统上一个物理文件

  每个目录引用相同的inode号 创建时链接数递增

  删除文件时:

    rm命令递减计数的链接

    文件要存在,至少有一个链接数

    当链接数为零时,该文件被删除

    不能跨越驱动器或分区

  语法:ln filename [linkname ]

(2) 软链接

  一个符号链接指向另一个文件

  ls -l 显示链接的名称和引用的文件

  一个符号链接的内容是它引用文件的名称

  可以对目录进行

  可以跨分区

  指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的引用计数

  语法:ln -s filename [linkname]

原文地址:https://www.cnblogs.com/hovin/p/11557797.html