目录

Linux文件管理

文件类型

Linux一切皆文件,很多东西都可以使用VFS抽象为文件来实现

文件类型符号举例
普通文件-纯文本文件、二进制可执行文件、压缩文件….
目录文件d/
socket文件s/
管道文件p/
软链接文件l (L小写)/

查看文件类型的方式主要有下面几个命令

ls -l a.txt
file a.txt
stat a.txt #查看文件的详细信息

文件时间

文件时间描述
Access文件最近被访问的时间
Modify文件最近被修改的时间,ls -l默认列出的就是修改时间
Change文件对应的inode节点被改动的时间(chmod、chown)

对于一个首次创建的文件,那么上面三大时间都是一样的

使用touch一个已经存在的文件则不会清空文件,而是将文件的三大时间都修改为最新

使用ls命令查看文件的三大时间

ls -l filename #列出文件的 mtime (Modity) 等价于`ll`
ls -lc filename #列出文件的 ctime(Change Time)
ls -lu filename #列出文件的 atime(Access Time)
ls --time-style long-iso #指定时间格式 long-iso最完美

cat一个文件,只会第一次变化,当再次cat的时候如果Access时间是新于Modify和Change的时间的则文件不会变化

同时还需要注意,往文件里面追加内容或则使用sed等更改文件内容的命令会同时更新文件的Modify和Change时间。这是因为文件内容变了那么文件的一些inode属性就变了,最直接的大小变了,此时 Change时间也会改变

文件权限

https://raw.githubusercontent.com/biningo/cdn/master/2021-04/linux-file1.png

符号描述
2inode硬链接数
osmond文件所属者
family文件所属组
4096文件大小 kb
时间ls不加参数默认是mtime
docs文件名

文件权限计算方法如下

ower:group:other
rwxr-x-wx
421401021 --> 753

find文件查找

按时间

-atime: Access Time

-mtime: Modify Time

-ctime: Change Time

+n n天前 -n n天内

find . -atime -2 #查找2天内被访问过的文件
find . -atime +2 #查找2天前被访问过的文件

按文件类型

-type

find . -type d #查找所有目录 

按文件权限

-perm

find . -perm 644

按文件大小

-size 单位cwbkMG

+nM 大于n兆 -nM小于n兆

find . -size +100M #查找大于100M的文件
find . -size -10b #查找小于10字节的文件

按文件名查找

-name

find . -name "*.jpg" #查找以jpg结尾的文件
find . -name "?.jpg" #查找a.jpg这样的文件
find . -name "[abcdef].jpg" #查找a.jpg b.jpg c.jpg d.jpg e.jpg f.jpg

其他

! 反向查找

find . ! -size +10M #查找小于10M的文件

多目录下查找

find d1 d2 -size +10M