Linux 命令 : ls

对您有点儿帮助?请点这里mark给动力

Linux Command : ls

ls命令是 list 的缩写,用来显示文件和目录的列表,在 Linux 中是使用率较高的命令。通过这个命令不仅可以查看文件(或目录)的名字,还可以查看更多关于文件(或目录)详细的信息。
在不同版本的 Linux like 系统中可以用 "$ man ls" 来查看关于命令的具体信息。

格式

ls [选项] [目录名]

  • 选项 : 通过 "$ man ls" 具体查看
  • 目录名 : 默认当前目录

常用例子

# -- 基本(basic) --
$ ls -l    # 列出详细信息
$ ls -a    # 显示隐藏文件(即 "." 开头的文件) 
$ ls -A    # 显示隐藏文件(即 "." 开头的文件,不包括当前目录 :  "." 和父目录 : "..") 

# -- 时间(time) --
# ls -l    # 显示修改时间(mtime : modification time),最近时间在最上面
# ls -lu   # 显示访问时间(atime : access time),最近时间在最上面
$ ls -lc   # 显示改变时间(ctime : change time),最近时间在最上面

# -- 排序(sort) --
$ ls -lt   # 显示修改时间(mtime : modification time)并且根据修改时间排序,最近时间在最上面
$ ls -ltu  # 显示访问时间(atime : access time)并根据访问时间排序,最近时间在最上面
$ ls -ltc  # 显示改变时间(ctime : change time)并根据访问时间排序,最近时间在最上面
$ ls -lS   # 根据文件大小排序,最大的在最上面
$ ls -lX   # 根据扩展名排序

# -- 反转排序顺序(reverse sort) --
$ ls -lSr  # 根据文件大小排序,最小的在最上面 (reverse)

# -- 目录(directory) --
$ ls -d */               # 只显示目录
$ ls -lR                 # 递归显示子目录
$ ls -F                  # 显示文件(或目录,目录后面添加 '/'
$ ls -ld /home/test/*    # 显示 /home/test 下的文件(或目录)的绝对路径
$ ls -d $PWD/*           # 显示当前目录下的文件(或目录)的绝对路径

# -- 其他(other) --
$ ls -lh   # 文件大小用人类容易理解的方式输出 (e.g., 1K 234M 2G)
$ ls -i    # 显示文件(或目录)的 Inode number
$ ls -1    # 用一列显示,即每行只列出一个文件(或目录)
$ ls -n    # 显示 UID(user-id) and GID(group-id) 而不是 user-name and group-name
$ ll       # 这个命令根据系统不同会有不同,用命令 "$ type ll" 来查看具体是什么命令的别名

详细介绍 “$ ls -l”

  • 例子

    # Ubuntu 16.04.3 LTS
    ubuntu@ip-172-31-16-60:~$ ls -l
    total 12
    drwxrwxr-x 2 ubuntu ubuntu 4096 Nov 24 20:29 test_dir
    -rw-rw-r-- 2 ubuntu ubuntu   13 Nov 24 20:31 test_file
    -rw-rw-r-- 2 ubuntu ubuntu   13 Nov 24 20:31 test_file_hard_link
    lrwxrwxrwx 1 ubuntu ubuntu    9 Nov 24 23:25 test_file_soft_link -> test_file
    
  • 如上面命令会得到 7 个字段的列表

    • 第 1 字段 : 文件属性字段
      10 个字母组成
      • 第 1 字母: 文件的类型
        • 字母 “-” 表示该文件是一个普通文件。
        • 字母 “d” 表示该文件是一个目录,字母 "d" 是 dirtectory(目录) 的缩写。
        • 字母 “l” 表示该文件是一个链接文件。字母 "l" 是 link (链接) 的缩写,类似于 windows 下的快捷方式。
        • 字母 “b” 的表示块设备文件 (block),一般置于 /dev 目录下,设备文件是普通文件和程序访问硬件设备的入口,是很特 的文件。没有文件大小,只有一个主设备号和一个辅设备号。一次传输数据为一整块的被称为块设备,如硬盘、光盘等。最小数据传输单位为 个数据块(通常一个数据块的大小为 512 字节)。
        • 字母 “c” 表示该文件是一个字符设备文件 (character),一般置于 /dev 目录下,一次传输一个字节的设备被称为字 设备,如键盘、字符终端等,传输数据的最小单位为一个字节。
        • 字母 “p” 表示该文件为命令管道文件。与 shell 编程有关的文件。
        • 字母 “s” 表示该文件为 sock 文件。与 shell 编程有关的文件。
      • 第 2 ~ 10 字母
        • 9 个字母表示该文件(或目录)的权限,3个为一组。其中前三个表示文件属主的权限,中间三个表示文件属组拥有的权限,最后三个表示其他用户拥有的权限。
        • r 表是读 (Read) 、w 表示写 (Write) 、x 表示执行 (eXecute)、- 表示没有权限。
          • r : 读权限
            • 文件 : 读文件的内容
            • 目录 : 列出该目录下所有的文件和子目录,即可以使用 ls 命令
          • w : 写权限
            • 文件 : 新增, 修改, 删除文件内容
            • 目录 : 增加、删除、或者重命名(即移动文件)该目录下的文件(或目录),即可以使用 mkdir, rm, mv 命令。
          • x : 执行权限
            • 文件 : 执行文件
            • 目录 : 进入目录的权限,即可以使用 cd 命令。
            • ※ x 对应的位置(执行位)还可能是其它字符。
              • 对于文件属主 (u) 或 文件属组 (g) 的执行位
                • 若为 s,表示该文件的 set-user-id 或者 set-group-id 和 执行权限 x 被同时置位。
                • 若为 S,表示该文件的 set-user-id 或者 set-group-id 被置位,而执行权限 x 不被置位。
              • 对于其他用户(o) 的执行位
                • 若为 t,表示该文件的粘滞位(sticky bit)和 执行权限 x 均被置位。
                • 若为T,表示粘滞位被置位,而执行权限 x 不被置位。
          • ※ 通常,每创建一个文件,该文件都会拥有默认的权限,该默认的权限由权限掩码 umask 进行控制,更改 umask 值可更改新创建的文件的默认权限。
    • 第 2 字段
      • 如果是一个文件不是目录,表示这个文件所具有的硬链接 (Hard Link)数
      • 如果是一个目录,表示该目录所含子目录的个数。
        当新建一个目录,会发现这个字段显示默认是 2,因为该目录下默认包含指向自己的目录 "." 和 父目录 ".." 用如下命令查看
        $ ls -a
        
    • 第 3 字段 : 文件(或目录)属主
      • 该字段表示此文件是属于哪个用户。Linux 类系统都是多用户系统,每个文件都有它的属主。只有文件的属主才具有改动文件属性的权利。当然,root 用户具有改动任何文件属性的权利。对于一个目录来说,只有拥有该目录的用户,或者具有写权限的用户才有在目录下创建文件的权利。
      • 修改文件(或目录)的属性的命令
        • chown 修改文件(或目录)的属主
        • chgrp 修改文件(或目录)的属组
        • chmod 修改文件(或目录)权限
      • 如果某一个用户因为某种原因,被删除,而该用户的文件还存在,那么用ls -l 查看该文件将显示一个代表用户存在前ID号的数字。
    • 第 4 字段 : 文件(或目录)属主所在的组
      一个用户可以加入很多个组,但是其中有一个是主组,这个字段显示的就是主组。可以用如下命令指定用户所在的组。
      useradd –g 组名 用户名 # 指定用户所在的主组
      useradd –G 组名 用户名 # 指定用户所在的其他组
      
    • 第 5 字段 : 文件所占用的空间 (以字节为单位)
      可以用 ls 命令的 h 参数指定显示 human-readable 格式 e.g., 1K 234M 2G
      当为目录时,作为 Linux 中的特殊文件,该值不是目录下所有文件和目录的大小的总和,而是目录本身大小。
      ls -lh
      
    • 第 6 字段 : 文件(或目录)最近修改 (modification) 或访问 (access) 时间
      文件的修改时间和访问时间可以通过 touch 命令来更新到当前时间。
      touch filename
      
    • 第 7 字段:文件名
      如果是符号链接,如下格式显示
      [soft link file name] -> [original file name]

参考

  • linux ls -l 详解
  • ls命令概述
  • ls command in Linux/Unix
  • lsコマンドで覚えておきたい使い方16個(+4個)
  • 每天一个linux命令(1):ls命令

你可能感兴趣的:(Linux 命令 : ls)