Linux文件管理

Posted lh-ljy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux文件管理相关的知识,希望对你有一定的参考价值。

  

  

    

1 文件系统目录结构

技术图片

 

 

 

1.1 文件系统的目录结构

  文件和目录被组织成一个单根倒置树结构

  文件系统从根目录下开始,用“/”表示

  根文件系统(rootfs):root ?lesystem

  标准Linux文件系统(如ext4),文件名称大小写敏感,例如:MAIL, Mail, mail, mAiL

  以.开头的文件为隐藏文件

  路径分隔的 /

  文件名最长255个字节

  包括路径在内文件名称最长4095个字节

  蓝色-->目录 绿色-->可执行文件 红色-->压缩文件 浅蓝色-->链接文件 灰色-->其他文件

  除了斜杠和NUL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用

  每个文件都有两类相关数据:

    元数据:metadata

    数据:data

Linux的文件系统分层结构:FHS Filesystem Hierarchy Standard

参考文档:http://www.pathname.com/fhs/

1.2 常见的文件系统目录功能

  /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 ?les)

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

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

      bin, sbin, lib, lib64, etc, share

  /var: variable data ?les

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

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

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

    lock: 锁文件

    log: 日志目录及文件

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

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

    spool: 应用程序数据池

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

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

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

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

CentOS7 以后版本目录结构变化

  以下下目录是同一个目录,只不过做了软链接

  /bin 和 /usr/bin

  /sbin 和 /usr/sbin

  /lib 和/usr/lib

  /lib64 和 /usr/lib64

范例:

[root@centos8 ~]#ls /bin /sbin /lib /lib64 -ld

lrwxrwxrwx. 1 root root 7 May 11 2019 /bin -> usr/bin

lrwxrwxrwx. 1 root root 7 May 11 2019 /lib -> usr/lib

lrwxrwxrwx. 1 root root 9 May 11 2019 /lib64 -> usr/lib64

lrwxrwxrwx. 1 root root 8 May 11 2019 /sbin -> usr/sbin

1.3 应用程序的组成部分

  二进制程序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin

  库文件:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64

  配置文件:/etc, /etc/DIRECTORY, /usr/local/etc

  帮助文件:/usr/share/man, /usr/share/doc, /usr/local/share/man, /usr/local/share/doc

1.4 Linux下的文件类型

  - 普通文件

  d 目录文件

  b 块设备

  c 字符设备

  l 符号链接文件

  p 管道文件pipe

  s 套接字文件socket

范例:

[root@centos7 ~]#ls -l /run/

total 52

drwxr-xr-x 2 root root 100 Dec 9 20:41 abrt

-rw------- 1 root root 11 Dec 9 20:41 alsactl.pid

-rw-r--r-- 1 root root 5 Dec 9 20:41 atd.pid

-rw-r--r-- 1 root root 4 Dec 9 20:41 auditd.pid

prw------- 1 root root 0 Dec 9 20:41 autofs.fifo-misc

prw------- 1 root root 0 Dec 9 20:41 autofs.fifo-net

drwxr-xr-x 2 avahi avahi 80 Dec 9 20:41 avahi-daemon

drwxr-xr-x 2 root root 40 Dec 9 20:41 certmonger

drwxr-x--- 2 chrony chrony 80 Dec 9 20:41 chrony

drwxr-xr-x 2 root root 40 Dec 9 20:41 console

-rw-r--r-- 1 root root 5 Dec 9 20:41 crond.pid

---------- 1 root root 0 Dec 9 20:41 cron.reboot

drwx------ 2 root root 40 Dec 9 20:41 cryptsetup

drwxr-xr-x 3 root lp 80 Dec 9 20:41 cups

drwxr-xr-x 2 root root 60 Dec 9 20:41 dbus

-rw-r--r-- 1 root root 4 Dec 9 20:41 dhclient-eth0.pid

prw------- 1 root root 0 Dec 9 20:40 dmeventd-client

prw------- 1 root root 0 Dec 9 20:40 dmeventd-server

drwxr-xr-x 2 root root 40 Dec 9 20:41 faillock

-rw------- 1 root root 4 Dec 9 20:41 gssproxy.pid

srw-rw-rw- 1 root root 0 Dec 9 20:41 gssproxy.sock

drwxr-xr-x 4 root root 100 Dec 9 20:40 initramfs

-rw-r--r-- 1 root root 4 Dec 9 20:41 ksmtune.pid

drwxr-xr-x 8 root root 220 Dec 9 20:41 lock

drwxr-xr-x 3 root root 60 Dec 9 20:40 log

drwxrwxr-x 3 root libstoragemgmt 60 Dec 9 20:41 lsm

drwx------ 2 root root 80 Dec 9 20:40 lvm

-rw-r--r-- 1 root root 4 Dec 9 20:40 lvmetad.pid

drwx--x--- 2 root root 40 Dec 9 20:41 mdadm

drwxr-xr-x 2 root root 40 Dec 9 20:40 mount

drwxrwxr-x 2 root root 40 Dec 9 20:41 netreport

drwxr-xr-x 3 root root 120 Dec 9 20:41 NetworkManager

drwxr-xr-x 2 root root 40 Dec 9 20:41 plymouth

drwxr-xr-x 2 root root 40 Dec 9 20:41 ppp

drwxr-xr-x 2 radvd radvd 40 Dec 9 20:41 radvd

drwx------ 2 rpc rpc 40 Dec 9 20:41 rpcbind

-r--r--r-- 1 root root 0 Dec 9 20:41 rpcbind.lock

srw-rw-rw- 1 root root 0 Dec 9 20:41 rpcbind.sock

-rw-r--r-- 1 rpcuser rpcuser 5 Dec 9 20:41 rpc.statd.pid

2 文件操作命令

2.1 显示当前工作目录

每个shell和系统进程都有一个当前的工作目录 CWD:current work directory

显示当前shell CWD的绝对路径

pwd命令: 显示当前的工作路径

  -P 显示真实物理路径

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

范例:

[root@centos8 ~]#pwd

/root

[root@centos8 ~]#cd /data

[root@centos8 data]#pwd

/data

[14:38:41 root@centos8 sysconfig]#cd /bin

[14:38:52 root@centos8 bin]#pwd

/bin

[14:38:54 root@centos8 bin]#ll /

total 28

lrwxrwxrwx. 1 root root 7 May 11 2019 bin -> usr/bin

dr-xr-xr-x. 6 root root 4096 Dec 11 11:21 boot

drwxr-xr-x. 2 root root 142 Dec 13 14:26 data

drwxr-xr-x. 19 root root 3280 Dec 13 11:21 dev

drwxr-xr-x. 142 root root 8192 Dec 13 14:26 etc

drwxr-xr-x. 3 root root 18 Dec 11 11:19 home

lrwxrwxrwx. 1 root root 7 May 11 2019 lib -> usr/lib

lrwxrwxrwx. 1 root root 9 May 11 2019 lib64 -> usr/lib64

drwxr-xr-x. 2 root root 6 May 11 2019 media

drwxr-xr-x. 3 root root 18 Dec 11 11:15 mnt

drwxr-xr-x. 2 root root 6 May 11 2019 opt

dr-xr-xr-x. 259 root root 0 Dec 13 10:34 proc

dr-xr-x---. 15 root root 4096 Dec 13 14:26 root

drwxr-xr-x. 42 root root 1200 Dec 13 11:03 run

lrwxrwxrwx. 1 root root 8 May 11 2019 sbin -> usr/sbin

drwxr-xr-x. 2 root root 6 May 11 2019 srv

dr-xr-xr-x. 13 root root 0 Dec 13 10:34 sys

drwxrwxrwt. 20 root root 4096 Dec 13 14:14 tmp

drwxr-xr-x. 12 root root 144 Dec 11 11:12 usr

drwxr-xr-x. 22 root root 4096 Dec 11 11:21 var

[14:38:57 root@centos8 bin]#pwd -P

/usr/bin

2.2 绝对和相对路径

绝对路径

  以正斜杠开始

  完整的文件的位置路径

  可用于任何想指定一个文件名的时候

相对路径

  不以斜线开始

  指定相对于当前工作目录或某目录的位置

  可以作为一个简短的形式指定一个文件名

基名:basename,只取文件名而不要路径

目录名:dirname,只取路径,不要文件名

范例:

[14:46:18 root@centos8 bin]#basename /etc/sysconfig/network

network

[14:46:56 root@centos8 bin]#dirname /etc/sysconfig/network

/etc/sysconfig

2.3 更改目录

命令 cd : change directory 改变目录,可以使用绝对或相对路径

  选项:-P 切换至物理路径,而非软链接目录

  切换至父目录: cd ..

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

  切换至以前的工作目录: cd -

范例:

[root@centos8 ~]#cd /etc/sysconfig

[root@centos8 sysconfig]#pwd

/etc/sysconfig

[root@centos8 sysconfig]#cd ../../data

[root@centos8 data]#pwd

/data

[root@centos8 data]#cd /bin

[root@centos8 bin]#pwd

/bin

[root@centos8 bin]#cd -P /bin

[root@centos8 bin]#pwd

/usr/bin

相关的环境变量:

  PWD:当前目录路径

  OLDPWD:上一次目录路径

2.4 列出目录内容

ls 命令可以列出当前目录的内容或指定目录

用法:ls [options] [files_or_dirs]

常见选项:

  -a 包含隐藏文件

  -l 显示额外的信息

  -R 目录递归

  -ld 目录和符号链接信息

  -1 文件分行显示

  -S 按从大到小排序

  -t 按mtime排序

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

  -U 按目录存放顺序显示

  -X 按文件后缀排序

2.5 查看文件状态stat

文件相关信息:metadata, data

每个文件有三个时间戳

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

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

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

[root@centos8 ~]#stat /etc/passwd

File: /etc/passwd

Size: 1306 Blocks: 8 IO Block: 4096 regular file

Device: 802h/2050d Inode: 134792556 Links: 1

Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)

Access: 2019-12-09 20:37:12.830991350 +0800

Modify: 2019-12-09 20:37:12.826991351 +0800

Change: 2019-12-09 20:37:12.826991351 +0800

Birth: -

2.6 确定文件内容

文件可以包含多种类型的数据,使用?le命令检查文件的类型,然后确定适当的打开命令或应用程序使用

用法:file [options] <filename>...

常用选项:

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

  -f ?lelist 列出文件?lelist中文件名的文件类型

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

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

  --help 显示命令在线帮助

范例:

#显示编码列表

[15:34:50 root@centos8 ~]#iconv -l  

 

#将windows10上文本默认的编码转换成UTF-8

[15:34:50 root@centos8 ~]#iconv -f gb2312 win.txt -o win2.txt

[15:34:50 root@centos8 ~]#file linux.txt

linux.txt: ASCII text

[15:34:31 root@centos8 ~]#file windows.txt

windows.txt: ASCII text, with CRLF line terminators

 

#将windows的文本格式转换成Linux的文本格式

[15:35:26 root@centos8 ~]#dos2unix windows.txt

dos2unix: converting file windows.txt to Unix format...

[15:36:00 root@centos8 ~]#file windows.txt

windows.txt: ASCII text

 

#将Linux的文本格式转换成windows的文本格式

[15:36:02 root@centos8 ~]#unix2dos windows.txt

unix2dos: converting file windows.txt to DOS format...

[15:36:10 root@centos8 ~]#file windows.txt

windows.txt: ASCII text, with CRLF line terminators

[15:33:05 root@centos8 ~]#cat list.txt

/etc/

/bin

/etc/issue

[15:34:28 root@centos8 ~]#file -f list.txt

/etc/: directory

/bin: symbolic link to usr/bin

/etc/issue: ASCII text

2.7 文件通配符模式wild-card pattern

文件通配符可以用来匹配符合条件的多个文件,方便批理管理文件

通配符采有特定的符号,表示特定的含义,此特符号称为元字符

常见的通配符如下:

  * 匹配零个或多个字符

  ? 匹配任何单个字符

  ~ 当前用户家目录

  ~mage 用户mage家目录

  ~+和. 当前工作目录

  ~- 前一个工作目录

  [0-9] 匹配数字范围

  [a-z] 字母

  [A-Z] 字母

  [wang] 匹配列表中的任何的一个字符

  [^wang] 匹配列表中的所有字符以外的字符

另外还有在Linux系统中预定义的字符类:man 7 glob

  [:digit:]:任意数字,相当于0-9

  [:lower:]:任意小写字母,表示 a-z

  [:upper:]: 任意大写字母,表示 A-Z

  [:alpha:]: 任意大小写字母

  [:alnum:]:任意数字或字母

  [:blank:]:水平空白字符

  [:space:]:水平或垂直空白字符

  [:punct:]:标点符号

  [:print:]:可打印字符

  [:cntrl:]:控制(非打印)字符

  [:graph:]:图形字符

  [:xdigit:]:十六进制字符

范例:

1、显示/etc目录下所有以l开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录

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

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

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

5、显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录

6、只显示/root下的隐藏文件和目录

7、只显示/etc下的非隐藏目录

2.8 创建空文件和刷新时间

touch命令可以用来创建空文件或刷新文件的时间

用法:touch [OPTION]... FILE...

选项说明:

  -a 仅改变 atime和ctime

  -m 仅改变 mtime和ctime

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

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

范例:

[16:11:50 root@centos8 data]#date

Fri Dec 13 16:11:55 CST 2019

[16:11:03 root@centos8 data]#touch `date -d "-1 day" +%F_%T`.log

[16:11:48 root@centos8 data]#ls

2019-12-12_16:11:48.log

[16:11:55 root@centos8 data]#touch $(date -d "1 year" +%F_%T).log

[16:13:11 root@centos8 data]#ls

2019-12-12_16:11:48.log 2020-12-13_16:13:11.log

2.9 复制文件和目录

利用 cp 命令可以实现文件或目录的复制

用法:

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

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

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

常用选项

  -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 目标存在,覆盖前先备份,形式为 ?lename~

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

 

 

源目标

 

不存在

 

存在且为文件

 

存在且为目录

 

 

一个

文件

 

新建DEST,并将SRC中

内容填充至DEST中

 

将SRC中的内容覆盖至

DEST中 注意数据丢失风

险!建议用–i 选项

 

在DEST下新建与原文件同

名的文件,并将SRC中内容

填充至新文件中

 

 

多个

文件

 

提示错误 提示错误

 

在DEST下新建与原文件同

名的文件,并将原文件内容

复制进新文件中

 

目录

须使

-r

选项

 

创建指定DEST同名目

录,复制SRC目录中所

有文件至DEST下

 

提示错误

 

在DEST下新建与原目录同

名的目录,并将SRC中内容

复制至新目录中

 

范例:

[16:21:08 root@centos8 ~]#cp ~wang/issue /data/issue_wang.bak

-rw-r--r--. 1 root root 86 Dec 13 16:21 /data/issue_wang.bak

-rw-r--r--. 1 wang wang 86 Dec 13 16:18 /home/wang/issue

 

[16:21:44 root@centos8 ~]#cp -p ~wang/issue /data/issue_wang2.bak

[16:22:07 root@centos8 ~]#ll ~wang/issue /data/issue_wang2.bak

-rw-r--r--. 1 wang wang 86 Dec 13 16:18 /data/issue_wang2.bak

-rw-r--r--. 1 wang wang 86 Dec 13 16:18 /home/wang/issue

[16:23:19 root@centos8 ~]#cp /etc/sysconfig/ /data/

cp: -r not specified; omitting directory ‘/etc/sysconfig/‘

[16:23:40 root@centos8 ~]#cp -r /etc/sysconfig/ /data/

[16:23:45 root@centos8 ~]#ll /data

total 12

-rw-r--r--. 1 root root 0 Dec 13 16:11 2019-12-12_16:11:48.log

-rw-r--r--. 1 root root 0 Dec 13 16:13 2020-12-13_16:13:11.log

-rw-r--r--. 1 wang wang 86 Dec 13 16:18 issue_wang2.bak

-rw-r--r--. 1 root root 86 Dec 13 16:21 issue_wang.bak

drwxr-xr-x. 7 root root 4096 Dec 13 16:23 sysconfig

[16:24:03 root@centos8 ~]#cp -r /etc/sysconfig/ /data/sysconfig_bak

[16:24:34 root@centos8 ~]#ll /data

total 16

-rw-r--r--. 1 root root 0 Dec 13 16:11 2019-12-12_16:11:48.log

-rw-r--r--. 1 root root 0 Dec 13 16:13 2020-12-13_16:13:11.log

-rw-r--r--. 1 wang wang 86 Dec 13 16:18 issue_wang2.bak

-rw-r--r--. 1 root root 86 Dec 13 16:21 issue_wang.bak drwxr-xr-x. 7 root root 4096 Dec 13 16:23 sysconfig

drwxr-xr-x. 7 root root 4096 Dec 13 16:24 sysconfig_bak

[16:32:43 root@centos8 ~]#cp -b /etc/motd /data/issue

cp: overwrite ‘/data/issue‘? y

[16:33:09 root@centos8 ~]#ll /data

total 8

-rw-r--r--. 1 root root 1 Dec 13 16:33 issue

-rw-r--r--. 1 root root 2610 Dec 13 16:32 issue~

[16:33:11 root@centos8 ~]#cp -b /etc/fstab /data/issue

cp: overwrite ‘/data/issue‘? y

[16:33:55 root@centos8 ~]#ll /data

total 8

-rw-r--r--. 1 root root 709 Dec 13 16:33 issue

-rw-r--r--. 1 root root 1 Dec 13 16:33 issue~

[16:33:56 root@centos8 ~]#cp --backup=numbered /etc/fstab /data/issue

cp: overwrite ‘/data/issue‘? y

[16:34:32 root@centos8 ~]#cp --backup=numbered /etc/shadow /data/issue

cp: overwrite ‘/data/issue‘? y

[16:34:41 root@centos8 ~]#cp --backup=numbered /etc/os-release /data/issue

cp: overwrite ‘/data/issue‘? y

[16:34:48 root@centos8 ~]#ll /data

total 20

-rw-r--r--. 1 root root 420 Dec 13 16:34 issue

-rw-r--r--. 1 root root 1 Dec 13 16:33 issue~

-rw-r--r--. 1 root root 709 Dec 13 16:33 issue.~1~

-rw-r--r--. 1 root root 709 Dec 13 16:34 issue.~2~

----------. 1 root root 1349 Dec 13 16:34 issue.~3~

2.10移动和重命名文件

mv 命令可以实现文件或目录的移动和改名

同一分区移动数据,速度很快:数据位置没有变化

不同分区移动数据,速度相对慢:数据位置发生了变化

用法:

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

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

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

常用选项:

  -i 交互式

  -f 强制

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

2.11删除文件

使用rm 命令可以删除文件

用法:rm [OPTION]... FILE...

常用选项:

  -i 交互式

  -f 强制删除

  -r 递归

  --no-preserve-root 删除/

范例:

rm -rf /*

2.12目录操作

2.12.1 显示目录树tree

常见选项:

  -d: 只显示目录

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

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

2.12.2 创建目录mkdir

常见选项:

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

  -v: 显示详细信息

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

2.11.3 删除空目录rmdir

常见选项:

  -p 递归删除父空目录

  -v 显示详细信息

注意:rmdir只能删除空目录,如果想删除非空目录,可以使用rm -r 命令,递归删除目录树

3 文件元数据和节点表结构

3.1 inode表结构

每个文件的属性信息,比如:文件的大小,时间,类型等,称为文件的元数据(meta data)。这此元数据是存放在node(index node)表中。node 表中有很多条记录组成,第一条记录对应的存放了一个文件的元数据信息

第一个node表记录对应的保存了以下信息:

  inode number 节点号

  文件类型

  权限

  UID

  GID

  链接数(指向这个文件名路径名称个数)

  该文件的大小和不同的时间戳

  指向磁盘上文件的数据块指针

  有关文件的其他数据

技术图片

 

 技术图片

目录

目录是个特殊文件,文件内容保存了目录中文件的列表及inode number

  文件引用一个是 inode号

  人是通过文件名来引用一个文件

  一个目录是目录下的文件名和文件inode号之间的映射

inode表和目录

技术图片

cpinode

cp 命令:

  分配一个空闲的inode号,在inode表中生成新条目

  在目录中创建一个目录项,将名称与inode编号关联

  拷贝数据生成新的文件

rminode

rm 命令:

  链接数递减,从而释放的inode号可以被重用

  把数据块放在空闲列表中

  删除目录项

  数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖

mvinode

  如果mv命令的目标和源在相同的文件系统,作为mv 命令

  用新的文件名创建对应新的目录项

  删除旧目录条目对应的旧的文件名

  不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!

  如果目标和源在一个不同的文件系统, mv相当于cp和rm

范例:

[root@centos8 ~]#df -i /boot

Filesystem Inodes IUsed IFree IUse% Mounted on

/dev/sda1 65536 310 65226 1% /boot

[root@centos8 ~]#mkdir /boot/test

[root@centos8 ~]#touch /boot/test/file{1..65226}

[root@centos8 ~]#touch /boot/test/new.txt

touch: cannot touch ‘new.txt‘: No space left on device

[root@centos8 ~]#df /boot

Filesystem 1K-blocks Used Available Use% Mounted on

/dev/sda1 999320 133800 796708 15% /boot

[root@centos8 ~]#df -i /boot

Filesystem Inodes IUsed IFree IUse% Mounted on

/dev/sda1 65536 65536 0 100% /boot

3.2 硬链接ln

硬链接本质上就给一个文件起一个新的名称,实质是同一个文件

硬链接特性

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

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

  每个目录引用相同的inode号

  创建时链接数递增

  删除文件时:rm命令递减计数的链接,文件要存在,至少有一个链接数,当链接数为零时,该文件被删除

  不能跨越驱动器或分区

  不支持对目录创建硬链接

用法:ln filename [linkname ]

3.3 符号(或软)链接

一个符号链接指向另一个文件,就像windows中快捷方式,软链接文件和原文件本质上不是同一个文件

软链接特点

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

  可以对目录创建软链接

  可以跨分区的文件实现

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

  软链接如果使用相对路径,是相对于原文件的路径,而非相对于当前目录

用法:ln -s filename [linkname]

可以使用绝对或相对路径

以上是关于Linux文件管理的主要内容,如果未能解决你的问题,请参考以下文章

Linux 文件/目录管理(初级)

Linux文件和目录管理理论

Linux 基础——Linux简介目录管理文件管理

Linux权限管理(用户+文件)

Linux文件管理_1

Linux学习系列--如何在Linux中进行文件的管理