Linux的文件系统分层结构:FHS Filesystem Hierarchy Standard
范例:
[root@servera ~]# ls /bin /sbin /lib /lib64 -ld
lrwxrwxrwx. 1 root root 7 Aug 12 2018 /bin -> usr/bin
lrwxrwxrwx. 1 root root 7 Aug 12 2018 /lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Aug 12 2018 /lib64 -> usr/lib64
lrwxrwxrwx. 1 root root 8 Aug 12 2018 /sbin -> usr/sbin
[root@centos6 ~]#ls /bin /sbin /lib /lib64 -ld
dr-xr-xr-x. 2 root root 4096 Mar 20 09:14 /bin
dr-xr-xr-x. 11 root root 4096 Dec 12 2018 /lib
dr-xr-xr-x. 9 root root 12288 Mar 20 09:13 /lib64
dr-xr-xr-x. 2 root root 12288 Mar 20 09:14 /sbin
范例:
[root@servera ~]# ls -l /run
5.3.1 显示当前工作目录
每个shell和系统进程都有一个当前的工作目录 CWD:current work directory
显示当前shell CWD的绝对路径
pwd命令: printing working directory
范例:
[root@servera ~]# ll /bin
lrwxrwxrwx. 1 root root 7 Aug 12 2018 /bin -> usr/bin
[root@servera ~]# cd /bin/
[root@servera bin]# pwd
/bin
[root@servera bin]# pwd -P
/usr/bin
5.3.2 绝对和相对路径
以正斜杠/ 即根目录开始
完整的文件的位置路径
可用于任何想指定一个文件名的时候
[root@servera tmp]# cat /etc/sysconfig/network-scripts/ifcfg-ens160
不以斜线开始
一般情况下,是指相对于当前工作目录的路径,特殊场景下,是相对于某目录的位置
可以作为一个简短的形式指定一个文件名
[root@servera test2]# pwd
/tmp/test/test2
[root@servera test2]# cd ../../
[root@servera tmp]#
基名:basename,只取文件名而不要路径
目录名:dirname,只取路径,不要文件名
范例:
[root@centos8 bin]#basename /etc/sysconfig/network
network
[root@centos8 bin]#dirname /etc/sysconfig/network
/etc/sysconfig
[root@centos8 ~]#dirname /etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts
[root@centos8 ~]#basename /etc/sysconfig/network-scripts/ifcfg-eth0
ifcfg-eth0
5.3.3 更改目录
命令 cd : change directory 改变目录
可以使用绝对或相对路径
范例:
5.3.4 列出目录内容
ls 命令可以列出当前目录的内容或指定目录
用法:
ls [options] [files_or_dirs]
常见选项:
5.3.5 文件通配符模式
文件通配符可以用来匹配符合条件的多个文件,方便批量管理文件
通配符采有特定的符号,表示特定的含义,此特符号称为元 meta 字符
常见的通配符如下:
别外还有在Linux系统中预定义的字符类:man 7 glob
范例: [ ] 和 { }
[root@servera tmp]# ll f{1..5}
ls: cannot access 'f1': No such file or directory
ls: cannot access 'f2': No such file or directory
-rw-r--r--. 1 root root 0 Mar 25 15:48 f3
-rw-r--r--. 1 root root 0 Mar 25 15:48 f4
-rw-r--r--. 1 root root 0 Mar 25 15:48 f5
[root@servera tmp]# ll f[1-5]
-rw-r--r--. 1 root root 0 Mar 25 15:48 f3
-rw-r--r--. 1 root root 0 Mar 25 15:48 f4
-rw-r--r--. 1 root root 0 Mar 25 15:48 f5
[root@servera tmp]# ll f[a-c]
-rw-r--r--. 1 root root 0 Mar 25 15:51 fa
-rw-r--r--. 1 root root 0 Mar 25 15:51 fA
-rw-r--r--. 1 root root 0 Mar 25 15:51 fb
-rw-r--r--. 1 root root 0 Mar 25 15:51 fB
-rw-r--r--. 1 root root 0 Mar 25 15:51 fc
[root@servera tmp]# ll f{a..c}
-rw-r--r--. 1 root root 0 Mar 25 15:51 fa
-rw-r--r--. 1 root root 0 Mar 25 15:51 fb
-rw-r--r--. 1 root root 0 Mar 25 15:51 fc
5.3.6 查看文件状态 stat
文件相关信息:metadata, data
每个文件有三个时间戳:
5.3.7 复制文件和目录
利用 cp(copy)命令可以实现文件或目录的复制
格式:
cp [OPTION]... SOURCE... DIRECTORY
范例:
[root@servera tmp]# cp /etc/passwd .
[root@servera tmp]# ls
passwd
[root@servera tmp]# cp -a /etc/ .
[root@servera tmp]# ls
etc
5.3.8 移动以及重命名文件
mv (move)命令可以实现文件或目录的移动和改名
同一分区移动数据,速度很快:数据位置没有变化
不同分区移动数据,速度相对慢:数据位置发生了变化
格式:
mv [OPTION]... SOURCE... DIRECTORY
常用选项:
后面跟的是源文件和目标路径,意思是要把文件移动到哪个目录下面,如果目标路径不存在那就是重命名
范例:
[root@servera tmp]# ls
passwd
[root@servera tmp]# mkdir ./test
[root@servera tmp]# mv passwd ./test/;ls /tmp /tmp/test
/tmp:
test
/tmp/test:
passwd
[root@servera tmp]# mv test/passwd ./pass;ls /tmp/ /tmp/test/
/tmp/:
pass test
/tmp/test/:
5.3.9 删除文件
使用 rm (remove)命令可以删除文件
注意:此命令非常危险,慎重使用,建议使用mv 代替 rm
格式:
rm [OPTION]... FILE...
常用选项:
范例:
[root@servera tmp]# ls
pass test
[root@servera tmp]# rm pass
rm: remove regular file 'pass'? y
[root@servera tmp]# ls
test
[root@servera tmp]# ls
passwd test
[root@servera tmp]# rm -f passwd
[root@servera tmp]# ls
test
[root@servera tmp]# rm -f test/
rm: cannot remove 'test/': Is a directory
[root@servera tmp]# rm -rf test/
[root@servera tmp]# ls
[root@servera tmp]#
5.3.10.1 显示目录树 tree
常见选项:
-d:只显示目录
-L level:指定显示的层级数目
5.3.10.2 创建目录mkdir
常见选项:
5.3.10.3 删除空目录rmdir
常见选项:
注意:rmdir只能删除空目录,如果想删除非空目录,可以使用rm -r 命令,递归删除目录树
5.4 文件元数据和节点表结构
inode表结构:
每个文件的属性信息,比如:文件的大小,时间,类型等,称为文件的元数据(meta data)。这此元数
据是存放在node(index node)表中。node 表中有很多条记录组成,第一条记录对应的存放了一个文
件的元数据信息
第一个node表记录对应的保存了以下信息:
5.4.1 文件访问原理
cp和inode
cp 命令:
rm和inode
rm 命令:
mv和inode
用新的文件名创建对应新的目录项
删除旧目录条目对应的旧的文件名
不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!
格式:
ln filename [linkname]
范例:
[root@servera tmp]# ll
total 4
-rw-r--r--. 1 root root 2723 Mar 25 17:12 passwd
[root@servera tmp]# ln passwd passwd1
[root@servera tmp]# ll
total 8
-rw-r--r--. 2 root root 2723 Mar 25 17:12 passwd
-rw-r--r--. 2 root root 2723 Mar 25 17:12 passwd1
一个符号链接指向另一个文件,就像 windows 中快捷方式,软链接文件和原文件本质上不是同一个文件
软链接特点
格式:
ln -s filename [linkname]
范例:
#绝对路径
ln -s /data/dir /data/dirlink
#相对路径
cd /data
ln -s ../data/dir /root/dirlink
rm -rf /data/dirlink #删除软链接本身,不会删除源目录内容
rm -rf /data/dirlink/ #删除源目录的文件,不会删除链接文件
#查看链接文件指向的原文件
readlink /data/dirlink
5.4.4 硬链接与软链接区别总结
1.本质
硬链接:本质是同一个文件起了多个名字
软链接:本质不是同一个文件
2.跨设备
硬链接:不支持
软链接:支持
3.inode
硬链接:相同
软链接:不同
4.链接数
硬链接:创建新的硬链接,链接数会增加,删除硬链接,链接数减少
软链接:创建或删除,链接数不会变化
5.文件夹
硬链接:不支持
软链接:支持
6.相对路径
硬链接:原始文件相对路径是相对于当前工作目录
软链接:原始文件的相对路径是相对于链接文件的相对路径
7.删除源文件
硬链接:只是链接数减一,但链接文件的访问不受影响
软链接:链接文件将无法访问
8.文件类型
硬链接:和源文件相同
软链接:链接文件和源文件无关
阅读量:865
点赞量:0
收藏量:0