文件管理和IO重定向

1.文件系统的目录结构

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

文件系统从坟墓下开始,用“/"表示

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

路径分隔的/

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

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

每个文件都有两类相关数据:元数据:metadata,即属性, 数据:data,即文件内容

2Linux下的文件类型

-     普通文件

d 目录文件directory

b 块设备block

c 字符设备character

l  符号链接文件link

p 管道文件pipe

s 套接字文件socket

3.绝对路径相对路径

绝对路径

以正斜杠/ 即根目录开始  完整的文件的位置路径  可用于任何想指定一个文件名的时候

相对路径名

不以斜线开始  一般情况下,是指相对于当前工作目录的路径,特殊场景下,是相对于某目录的位置  可以作为一个简短的形式指定一个文件名 ./表示当前目录../表示上级目录

4基础命令cd, pwd,ls, stat, file, touch,cp,mv,rm

cd:改变目录    cd切换至当前用户主目录    cd- 切换至上一个工作目录

pwd:当前目录路径

ls:命令可以列出当前目录的内容或指定目录 -a 包含隐藏文件 -l显示额外信息 -r 目录递归

stat:显示文件相关信息:metadata(元数据), data(数据)
一个是存放文件的元数据、一个是真正存放文件数据的本身

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

touch:创建文件,刷新文件时间

cp:可以实现文件或目录的复制 -r 递归复制目录及所有内容-a保留文件属性-v显示备份过程

mv:可以实现文件或目录的移动和改名,原理其实是限制性了cp 拷贝到了目标路径、然后再执行 rm 删除源文件

rm:此命令非常危险建议用mv代替rm,-r递归,-f强制删除

alias rm='DIR=/data/backup`date +%F%T`;mkdir $DIR;mv -t $DIR'

tr:转化删除字符-s把连续重复的字符以单独一个字符表示,即去重-d删除所有属于第一字符集的字符-c取字符集的补集

5.文件元数据和节点表结构

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

inode number 节点号

文件类型

权限

uid

gid

链接数

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

第二部分

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

有关文件的其他数据

cp:分配一个空闲的inode号,在inode表中生成新条目 在目录中创建一个目录项,将名称与inode编号关联 拷贝数据生成新的文件

rm:链接数递减,从而释放的inode号可以被重用 把数据块放在空闲列表中 删除目录项 数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖

mv:如果mv命令的目标和源在相同的文件系统,作为mv 命令 用新的文件名创建对应新的目录项 删除旧目录条目对应的旧的文件名 不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动! 如果目标和源在一个不同的文件系统, mv相当于先将旧文件拷贝CP过到新文件路径、再将旧文件 删除rm

6.通配符

*       匹配零个或多个字符,但不匹配 "." 开头的文件,即隐藏文件

?       匹配任何单个字符

[0-9]   匹配数字范围,表示为0到9的任意一个

[a-z]   a-z,A-Y,不包含字母z

[A-Z]   表示A,b,B.....z,Z。不包含字母a

[a-Z] 匹配任意字母

[:alnum:] 字母和数字

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

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

8. 硬链接和软链接区别总结
1. 本质:

硬链接:本质是同一个文件

软链接:本质不是同一个文

2. 跨设备

硬链接:不支持

软链接:支持

3. inode 

硬链接:相同

软链接:不同

4. 链接数

硬链接:创建新的硬链接,链接数会增加,删除硬链接,链接数减少

软链接:创建或删除,链接数不会变化

5. 文件夹

硬链接:不支持

软链接:支持

6. 相对路径

硬链接:原始文件相对路径是相对于当前工作目录

软链接:原始文件的相对路径是相对于链接文件的相对路径

7. 删除源文件

硬链接:只是链接数减一,但链接文件的访问不受影响

软链接:链接文件将无法访问

8. 文件类型

硬链接:和源文件相同

软链接:链接文件,和源文件无关

9 I/O重定向和管道

重定向

1> 或 >      把重定标准输出向到文件

2>          把错误输出重定向到文件

&>          把所有输出重定向到文件

注意>会覆盖文件

>>  可以在原有内容基础上,追加内容

[root@centos8 ~]#ls /data/  /xxx > stdout.log 2> stderr.log 
标准输出到stdout文件中,错误输出到stderr文件中

管道

格式 命令1 | 命令2 | 命令3 | …

将命令1的STDOUT发送给命令2的STDIN,命令2的STDOUT发送到命令3的STDIN

所有命令会在当前shell进程的子shell进程中执行

组合多种工具的功能

面试题

 

1.提示空间满 No space left on device,但 df 可以看到空间很多,为什么

节点标号使用殆尽,删除多余空文件, 即可

2.提示空间快满,使用rm 删除了很大的无用文件后,df 仍然看到空间不足,为什么?如何 解决?

有大文件正在被使用,cat / dev/null >大文件 然后删除文件 ,即可

原文地址:https://www.cnblogs.com/aiyoubucuo/p/14081481.html