ls 的输出会因各 Linux 版本变种而略有差异,这里只讨论一般情况下的输出。

下面是来自 man page 关于 ls 的描述:

$ man ls

ls - list directory contents

列出文件夹中的内容。

但一般我们会配合着 -l 参数使用,将输出展示成列表形式。

在 ls 的 man page 中搜索 -l 可看到该参数的意义:

-l use a long listing format

列表形式下看到的输出大概成这样:

-rwxrw-r-- 10 root root 2048 Jan 13 07:11 afile.exe

各列的含义

-rwxrw-r-- 10 root root 2048 Jan 13 07:11 afile.exe

?UUUGGGOOOS 00 UUUUUU GGGGGG #### ^-- 修改日期及文件或文件夹名

^ ^ ^ ^ ^ ^ ^ ^ ^

| | | | | | | | \--- 文件大小,单位为字节(byte)

| | | | | | | \-------- 所有者所处的分组

| | | | | | \--------------- 所有者名称

| | | | | \---------------------- 包含的项目(item)数量

| | | | \--------------------------- 额外的权限(`.`,`+`,`s` 等,为空表示没有)

| \--\--\----------------------------- 分别对应 [U]ser, [G]roup, and [O]thers 三种账户的读,写,可执行权限

\------------------------------------- 标识文件类型

文件权限/file permissions

包含三部分:

第一位标识文件类型,

-:文件。

d:文件夹(directory)。

l:软链(symlink)。

后面的值三个一组,xxx xxx xxx。分别对应了 user,group 与 other 的权限。其中每一组包含三位,每一位则表示具体的读写及可执行权限,如果是字母表示有该权限, - 表示没有相应的权限。

r:读取权限/readable。

w:写入权限/writable。

x:可执行权限/executable,即将文件作为可执行文件运行。

最后位可选,表示还有额外的权限控制,如果没有则为空,参见这里的解释。

其中,

user 即文件所属的用户,它的所有者,也可理解成其创建者,如果该文件没有被修改过权限的话。

group 即用户所属的分组。

other 表示既不是主人也不属于 user 所处的分组的其他任何身份。

所以连起来的话,-rwxrw-r-- 表示该项是个文件,其所有者拥有全部三种权限(rwx),和所有者同在一个分组下的用户没有可执行的权限(rw-),其他用户只读(r--)。

Tips: 系统会为文件默认赋予权限,但可通过 chmod (change mode)命令来手动改变文件的权限。

one more thing

有趣的是,权限除了使用 rwx 字母的方式表示,还可使用八进制(octal)数字来表示。

0:无权限 -

1:可执行 x

2:写权限 w

3:可写和可执行 wx

4:读权限 r

5:可读可执行 rx

6:读写 rw

7:读写及可执行 rwx

数字形式的权限通常用于 chmod 命令,方便修改文件的权限。比如将文件设置对用户有全部权限(对应数字 7),分组可读可执行(5),其他只读(4):

$ chmod 754 somefile.js

你当然还是可以使用字母的方式来进行设置的,

$ chmod u=rwx,g=rx,o=r somefile.js

细心的你可能发现了,无论哪种权限组合,都可以通过三种其他的权限其数字相加而得到,

比如 7 表示读写及可执行,7 = 4(读) + 2 (写) + 1 (可执行)

再比如只读权限 4 = 4(读) + 0 (写) + 0 (可执行)

这便是其设计其妙之处,所以你应该理解为何 0~7 对应的是上面列出的权限。方便之处在于,只需要记住 4,2,1 分别对应读,写,可执行。其他权限通过相加计算即可。

链接数量/number of links

表示包含的项目数量。如果该项是文件,则无疑是 1。如果该项是文件夹,表示文件夹下还包含多少个文件或文件夹。

所属用户/owner name

文件的所有者。

所属分组/owner group

所有者所处的分组名。

文件大小/file size

文件或文件夹的大小,单位为字节(byte)。通过参数可配置输出为更加容易理解的形式,比如 -h (--human-readable):

-rw-rw-r-- 1 liuwayong liuwayong 1.6K Mar 30 18:18 app.js

修改日期/time of last modification

最后的修改日期。

文件或目录名/file/directory name

文件或文件夹的名称。如果是软链接,会显示出其所指向的位置。

lrwxrwxrwx 1 root root 16 Aug 2 2018 videodata -> /data/videodata/

相关资料

linux ls 输出对齐,理解 Linux 中 `ls` 的输出相关推荐

  1. 深刻理解linux进程间通信 pdf,深刻理解Linux进程间通信.doc

    深刻理解Linux进程间通信.doc 深刻理解 Linux 进程间通信(IPC)级别 初级 郑彦兴 国防科大计算机学院 2002 年 12 月 11 日 一个大型的应用系统,往往需要众多进程协作,进程 ...

  2. linux tab的含义,理解Linux中crontab定时器里的 21 含义 - 金牛座, 爬山虎, PHPCreeper, Workerman, Swoole, PHP爬虫引擎, PHP爬...

    在crontab定时器中有如下类似的脚本: 0 2 * * * php /data/test/test.php >/dev/null 2>&1 & 其中 > 代表重定 ...

  3. 《Linux游戏编程》——理解Linux文件系统标准

    Linux游戏编程 Programming Linux Games [美]John R. Hall 著 作者:[美]John R. Hall 单位:Loki Software, Inc. 时间:200 ...

  4. php在指定html元素中输出,如何从PHP中的数组输出html svg元素?

    我有svg元素的数组.我必须从列出的阵列中打印出来.我试图打印它,但它不工作.请指导我如何获取浏览器上呈现的svg元素. actualy有阵列中的其他项目我没有表现出bcoz的字符限制如何通过SVG标 ...

  5. python怎么横着输出_对python3中, print横向输出的方法详解

    对python3中, print横向输出的方法详解 Python 2 : print打印的时候,如果结尾有逗号,打出来时候不会换行.但是在python3里面就不行了. Python3: 3.0的pri ...

  6. linux poweroff关机信号,理解 Linux 中的 Shutdown、Poweroff、Halt 和 Reboot 命令

    在本篇中,我们会向你解释 shutdown.poweroff.halt 以及 reboot 命令.我们会解释当使用可选项时,它们实际做了什么. 如果你想深入管理 Linux 服务器,那么为了有效和可靠 ...

  7. linux janus命令,深入理解janus中的plugin管理

    janus中的plugin是其非常重要的一部分内容,今天我们就来对这块内容做一下分析,看看janus是如何实现plugin的,以及它的工作原理是怎样的. janus的架构模型 janus的最大特色就是 ...

  8. linux cpu load 值,理解Linux系统中的load average(图文版)转

    一.什么是load average? linux系统中的Load对当前CPU工作量的度量 (WikiPedia: the system load is a measure of the amount ...

  9. python linux usb摄像头,树莓派用python中的OpenCV输出USB摄像头画面

    本文实例为大家分享了python OpenCV来表示USB摄像头画面的具体代码,供大家参考,具体内容如下 确认Python版本 $ python Python 2.7.13 (default, Jan ...

最新文章

  1. Print all attributes and values in a Javascript Object
  2. 29个月过去了,CSDN排名前200了:排名不断靠前的过程中,自己的技术水平和竞争力一定会不断向上...
  3. android application常见错误
  4. 精密空调内部培训资料
  5. Python中的生成器与迭代器
  6. 数据库操作php,一个数据库操作PHP类
  7. 点餐系统ip地址_spring boot实战——微信点餐系统03:微信授权(用户授权),免费内网穿透(固定ip)...
  8. IOS中,在两个ViewController之间传值
  9. 零基础入门AI量化交易学习笔记
  10. 数据结构 图-关键路径:AOE网络
  11. ubuntu 自动登录账户_Ubuntu如何启用root默认自动登录
  12. JS中flag使用场景之一
  13. 创意设计:带自动喂鱼的鱼缸自动控制系统设计与制作 单片机程序 原理图 源代码
  14. xp大容量u盘补丁_u盘128g 个性 大容量电脑系统修复
  15. 永恒之蓝MS17-010漏洞复现
  16. 开源免费截图软件ShareX如何改变文字水印和logo特效透明度
  17. 删除文件夹时,报错“错误ox80070091:目录不是空的”,该如何解决?
  18. 如何选择合适的RFID标签
  19. 微信小程序云开发之Node部署
  20. 《记忆匣子》——网络编程jsp网页制作复习习笔记1

热门文章

  1. ehchache验证缓存过期的api_Ehcache缓存时间设置
  2. matlab surf 坐标,Matlab SURF指向像素坐标
  3. Linux下VSCode的安装和使用(VScode C/C++配置 CMake的使用)(GCC、GDB)(各类插件 Snippets、Code Runner、Include Autocomplete)
  4. pytorch torch.device类(表示在其上或将要分配torch.Tensor的设备)
  5. MySQL5.6解压版详细安装教程(附安装配置、MySQL数据库设置root管理员密码,MySQL字符集设置问题及解决办法)
  6. ubuntu多版本python和pip切换
  7. Spring AOP详解一文搞懂@Aspect、@Pointcut、@Before、@Around、@After、@AfterReturning、@AfterThrowing
  8. springboot aop加载流程
  9. 基于若依框架的二次开发_SAP Commerce(原Hybris)的订单处理框架和SAP CRM One Order框架...
  10. java学生背景知识要求,好好学习Java并发 一、背景知识