Linux ls命令杂谈
some command
# Ubuntu
# ls
-l #以长格式(long)显示文件详细信息(权限、所有者、大小等)
-a #显示所有(all)文件,包括隐藏文件(以 . 开头)
-h #以人类可读(human_readable)的格式显示文件大小(如 KB、MB),与 -l 配合
-t #按修改时间(time)排序,最新文件优先 ,与 -l 配合
-r #反向(reverse)排序,与其他选项组合使用
-R #递归(recursion)列出子目录内容
-S #按文件大小排序,大文件优先
#列出所有 .txt 文件
ls *.txt
# 列出所有类似 file1.txt,file2.txt 等的文件,"?" 表示待定字符
ls file?.txt
-al
示例


前言
- 关于 Linux 文件权限的划分 ,一共分成三部分:
- 文件“所有者”
- 所属“用户组”
- “其他用户”
- 每部分权限又细分为三部分:
- “r”(read)读取
- “w”(write)写入
- “x”(execute)执行
详细分析
total 20
总磁盘占用空间。这是按文件系统块大小(通常 4KB)计算的总分配空间,不是文件实际内容大小的加和。
为什么“每个文件的大小求和不等于 20 “?
因为这是所列出文件的总磁盘占用空间,每个文件在存储策略上可能至少要占用某个大小的空间,而无关乎它本身的实际大小是否小于那个值。
其他
权限字符串 硬链接数 所有者 所属组 文件大小 修改时间 文件名
需要讲一下的也许只有 “权限字符串”和“硬连接数”。
权限字符串,例如:-rwx------
一共有 10 个 “-“,接下来一一解释:
- 1:文件类型,常见的有:”-” 可表示普通文件,“d” 表文件夹
- 2~4: “rwx” ,所有者的权限,“读写执行”。”-” 表示没有对应权限
- 5~7: 所属用户组的用户权限,其它与 2~4 同理
- 8~10:其他用户的权限,其它与 2~4 同理
硬链接数
- 表示文件被多少个名称引用每个文件至少有一个硬链接(即文件名本身)
- 若文件
file.txt的硬链接数为1,表示只有file.txt指向该文件数据。 - 若用
ln file.txt backup.txt创建硬链接,硬链接数会变为2(两个名称指向同一数据)
- 若文件
.ssh目录:

.目录,即当前目录,这个例子里是.ssh,被自身以及父级目录..引用,因此硬链接数为 “2” 。..目录,即父级目录,这个例子里是root目录,它被哪四个目录引用了呢?如下:root(自身).ssh(当前目录)- “
...“(这里我想表达的意思是它的上级目录,此例子里也即是指”root”目录的父级目录) - ”未知“(但肯定还有一个目录引用了”root”目录,我们可以回到上级目录也就是root目录看一下)
root目录:

可以看到与之前的分析是一致的,root目录的硬链接有四: . (自身)、 .. (父级)、.cache 、.ssh
目录的硬链接数一般是:2(自身.和父目录的..) + 子目录数量(每个子目录的..指向父目录)
作者
3049874370@qq.com
