开发者学堂课程【Linux文件管理命令:节点表结构】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/591/detail/8344
节点表结构
内容介绍
一、释放空间
二、{,.}文件备份命令
三、rename 文件改名命令
四、以- ~开头的文件
五、目录操作
六、练习
七、索引节点
一、释放空间
(1)查看空间
[root@centos7 ~]# df -h
空间使用情况如下,其中 /dev/sda1 使用17%:
(2)在 boot 文件夹中快速创建大文件
[root@centos7 ~] # dd if-/dev/zero of =/boot/big file bs=1M count=800
此时空间使用如下, /dev/sda1 使用空间变成96%:
(3)删除大文件,释放空间
[root@centos7 ~]# rm -f/boot/bigfile
(4)假设有一个程序正在使用 bigfile 大文件,此时再次删除大文件,会发现 /dev/sda1 使用空间仍为96%,空间未被释放:
1 [root@centos7 ~]# vim/boot/bigfile
2 [root@centos7 ~]# rm -f/boot/bigfile
3 [root@centos7 ~]# ls /boot/bigfile(确认bigfile文件已删除)
ps:以上情况发生的原因是被删除的文件正在被其他程序访问,因此不会被立即删除,通过下列命令可以查看此类暂未被立即删除的文件:
[root@centos7 ~]# lsof|grep deleted
(5)当把程序关掉后,文件就会被立即删除。但有的程序如日志服务没法关掉,在这种情况下要想释放空间就可以采用以下方法:
1 [root@centos7 ~]# vim/boot/bigfile
2 [root@centos7 ~]# > /boot/bigfile(此时可以发现文件未被删除,但是文件大小变为0,空间也被释放了)
3 [root@centos7 ~]# rm -f/boot/bigfile
ps:关于> 的用法,用 > 文件名可以创建一个空文件,如果文件名存在则会覆盖并清空此文件,举例演示如下:
1 [root@centos7 ~]# cd/data
2 [root@centos7 data]#ls
3 f10.conff1.conf f2.conf f3.conf f4.conf f5.conf f6.conf f7.conf f8.conf f9.conf
4 [root@centos7 data]# > file1
5 [root@centos7 data]# ll file1
6 -rw-r--r-- 1 root root 0 sep 24 22:03 file1
7 [root@centos7 data]# cp/etc/fstab file2
8 [root@centos7 data]# ll file2
9 -rw-r--r-- 1 root root 595 Sep 24 22:03 file2
10 [root@centos7 data]# > file2
11 [root@centos7 data]# 11 file2
12 -rw-r--r--1 root root 0 sep 24 22:03 file2
对于 >> 文件名 命令来说,如果文件名不存在,则创建一个新的空文件;如果文件名存在,原封不动,相较于> 文件名命令更加安全
1 [root@centos7 data]# >> file5
2 [root@centos7 data]#ll file5
3 rw-r--r-- 1 root root 0 Sep 24 22:04 file5
4 [root@centos7 data]#ll file4
5 rw-r--r-- 1 root root 595 Sep 24 22:04 file4
6 [root@centos7 data]#>>file4
7 [root@centos7 data]#ll file4
8 rw-r--r-- 1 root root 595 Sep 24 22:04 file4
二、{,.}文件备份命令
1 [root@centos7 data]#ls
2 f1.conf f10.conf f2.conf f4.conf f3.conf f5.conf f7.conf f6.conf f9.conf f8.conf file2 file3 file4 file5
3 [root@centos7 data]#cp file1{,.bak}
4 [root@centos7 data]#ls
5 f1.conf f10.conf f2.conf f3.conf f5.conf f4.conf f6.conf f7.conf f8.conf f9.conf file1 file1.bak file2 file3 file5 file4
cp file1{,.bak} 命令等价于 cp file1 file1.bak,前者比后者的好处在于当文件名很长时,前者更节省时间
三、rename 文件改名命令
之前学的 mv 文件改名命令一次只能改一个文件名,rename 命令可以批量改名
举例:将文件中以 conf 结尾的文件全部改成以conf.bak结尾
1 [root@centos7 data]#ls
2 f1.conf f10.conf f2.conf f3.conf f5.conf f4.conf f6.conf f7.conf f8.conf f9.conf file1 file1.bak file2 file3 file5 file4
3 [root@centos7 data]#rename conf conf.bak *.conf
4 [root@centos7 data]#ls
5 f1.conf.bak f10.conf.bak f2.conf.bak f3.conf.bak
f5.conf.bak f4.conf.bak f6.conf.bak f7.conf.bak
f8. conf.bak f9. conf.bak file1 file1.bak file2 file3 file5
file4
四、以- ~开头的文件
(1)创建并删除以-开头的文件
1 [root@centos7 data]#touch ./-a. 或 touch -- -a
2 [root@centos7 data]#rm./-a 或 rm -rf/data/-a
(2)创建并删除以~开头的文件
1 [root@centos7 data]#touch ‘~wang’ 或 touch./~wang
2 [root@centos7 data]#rm -f ‘~wang’ 或 rm./wang
五、目录操作
(1)tree 显示目录树
u -d:只显示目录
u -L level: 指定显示的层级数目
u -P pattern: 只显示由指定 pattern 匹配到的路径
举例:
1 [root@centos7 data]# tree/root
2 [root@centos7 data]#tree -L 1 /etc(etc 文件层级比较多,可指定只显示一层)
3 [root@centos7 data]#tree -d /root(只显示 root 下的文件夹)
4 [root@centos7 data]#tree -P/etc/rc*(显示 etc 下所有 rc 开头的文件)
(2)mkdir 创建目录
u -p: 存在于不报错,且可自动创建所需的各目录
u -v 显示详细信息
u -m MODE: 创建目录时直接指定权限
举例:
1 [root@centos7 data]#mkdir dir1
2 [root@centos7 data]#mkdir dir1/dir2/dir3/dir4/ -P(dir1、dir1、dir3、dir4均不存在,用P可一次性全部创建)
(3)rmdir 删除空目录
u -p: 递归删除父空目录
u -v: 显示详细信息
举例:
1 [root@centos7 data]#rmdir d1/d2/d3/d4(删除 dir4 文件)
2 [root@centos7 data]#rmdir d1/d/d3/ -p(若父目录为空,则会依次递归删除)
ps:需要注意的是,rmdir 只能删除空目录
(4)rm-r 递归删除目录树
六、练习
(1)如何创建 /testdir/dir1/x,/testdir/dir1/y,/testdir/dir1/x/a, /testdir/dir1/x/b,/testdir/dir1/y/a,/testdir/dir1/y/b
[root@centos7 ~]# mkdir -p/testdir/dir1/{x,y}/{a,b}
(2)如何创建 /testdir/dir2/x,/testdir/dir2/y,,/testdir/dir2/x/a,/testdir/dir2/x/b
[roo@centos7 ~]# mkdir -pv/testdir/dir2/{x/{a,b},y}
(3)如何创建 /testdir/dir3,/testdir/dir4,/testdir/dir5,/testdir/dir5/dir6,/testdir/dir5/dir7
[root@centos7 ~]# mkdir -p/testdir/dir{3,4,5/dir{6,7}}
七、索引节点
u inode(index node) 表中包含文件系统所有文件列表
u 一个节点(索引节点)是在一个表项,包含有关文件的信息(元数据),包括:
ü 文件类型,权限,UID,GID
ü 链接数(指向这个文件名路径名称个数)
ü 该文件的大小和不同的时间戳指向磁盘上文件的数据块指针
ü 有关文件的其他数据
i [root@centos7 dir1 ]# df -i(显示可用节点)
空间用完了节点不一定用完了,节点用完了空间也不一定用完了;
空间和节点满了会提示 no space left on device,两者中任意一个用完了都会导致无法新建文件
u node节点表
u inode表