ls指令详讲

ls 是 Linux/Unix 系统中一个非常常用的命令,用于列出指定目录中的文件和子目录。它可以提供文件的名称、权限、大小、修改时间等信息。以下是对 ls 指令的详解,包括常见选项和使用示例。


基本语法

复制代码
ls [选项] [目录/文件...]

如果不指定目录,ls 会默认列出当前工作目录下的文件和目录。


常用选项详解

1. 基本选项

  • ls:列出当前目录下的文件和目录(默认不显示隐藏文件)。

  • ls -a :显示所有文件和目录,包括隐藏文件(隐藏文件以.开头)。

    复制代码
    ls -a

    输出:

    复制代码
    .  ..  .hidden_file  file1  file2
  • ls -l:以长格式显示文件和目录信息(权限、拥有者、大小、修改时间等)。

    复制代码
    ls -l

    输出示例:

    复制代码
    -rw-r--r-- 1 user group  12345 Jan  5 15:20 file1
    drwxr-xr-x 2 user group   4096 Jan  5 15:10 dir1

    长格式信息字段解释:

    • 第一列:文件类型与权限。
      • -:普通文件
      • d:目录
      • l:符号链接
      • c:字符设备
      • b:块设备
    • 第二列:硬链接数。
    • 第三列:文件所有者。
    • 第四列:所属用户组。
    • 第五列:文件大小(以字节为单位)。
    • 第六列:最后修改时间。
    • 第七列:文件/目录名称。
  • ls -h :结合 -l 使用,以人类可读的形式显示文件大小(如 KB、MB)。

    复制代码
    ls -lh

    输出示例:

    复制代码
    -rw-r--r-- 1 user group  12K Jan  5 15:20 file1
    drwxr-xr-x 2 user group 4.0K Jan  5 15:10 dir1
  • ls -d:仅显示目录本身,而不是其内容。

    复制代码
    ls -d */

    输出示例:

    复制代码
    dir1/  dir2/
  • ls -r:以逆序显示(按名称排序的逆序)。

    复制代码
    ls -r

    输出示例:

    复制代码
    file2  file1  dir1
  • ls -t:按修改时间排序(最近修改的文件排在最前)。

    复制代码
    ls -lt
  • ls -S:按文件大小排序(从大到小)。

    复制代码
    ls -lS
  • ls -R:递归显示目录内容(包括子目录的内容)。

    复制代码
    ls -R

2. 组合选项

选项可以组合使用,例如:

  • ls -alh:显示所有文件(包括隐藏文件),以长格式显示,并以人类可读的文件大小。

    复制代码
    ls -alh

    输出示例:

    复制代码
    drwxr-xr-x 2 user group 4.0K Jan  5 15:10 .
    drwxr-xr-x 3 user group 4.0K Jan  5 14:00 ..
    -rw-r--r-- 1 user group  12K Jan  5 15:20 file1
    -rw-r--r-- 1 user group  8.0K Jan  5 15:10 file2
  • ls -ltr:按时间排序,以逆序显示。

    复制代码
    ls -ltr

文件类型表示

在长格式输出中(ls -l),文件类型由第一列第一个字符标识:

  • -:普通文件
  • d:目录
  • l:符号链接
  • c:字符设备文件
  • b:块设备文件
  • s:套接字文件
  • p:管道文件

高级选项

  • --color=auto:为输出内容添加颜色,以区分文件、目录、链接等(很多系统默认开启)。

    复制代码
    ls --color=auto
  • --sort:按指定方式排序(替代默认的字母顺序)。

    • --sort=size:按大小排序。
    • --sort=time:按修改时间排序。
    • --sort=extension:按文件扩展名排序。
  • --full-time:显示完整的时间戳(包括秒和年份)。

    复制代码
    ls --full-time
  • -i:显示文件的 inode 编号。

    复制代码
    ls -i

    输出示例:

    复制代码
    123456 file1
    123457 file2

常见用法示例

  1. 列出当前目录的所有文件和子目录

    复制代码
    ls -al
  2. 列出指定目录的内容

    复制代码
    ls /path/to/directory
  3. 按文件大小排序

    复制代码
    ls -lS
  4. 按最近修改时间排序并显示详细信息

    复制代码
    ls -lt
  5. 递归列出目录内容

    复制代码
    ls -R
  6. 显示目录中的隐藏文件

    复制代码
    ls -a
  7. 查看文件的 inode 编号

    复制代码
    ls -i

常用别名

在许多 Linux 系统中,ls 的一些选项已经通过别名简化。例如:

  • alias ll='ls -alF':ll 显示详细信息并标识文件类型。
  • alias la='ls -A':la 显示几乎所有文件(除去 . 和 ..)。
  • alias l='ls -CF':l 显示文件和目录。

可以在 ~/.bashrc 或 ~/.zshrc 文件中设置自己的 ls 别名。


通过熟练使用 ls 和其选项,可以快速查看和管理系统中的文件和目录,提高效率。

相关推荐
承渊政道1 分钟前
Linux网络学习【Reactor反应堆模式】
linux·网络·学习·ubuntu·reactor
且从容.3 小时前
ubuntu安装flink
linux·ubuntu·flink
爱和冰阔落5 小时前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
程序员沉梦听雨5 小时前
WSL2的安装与使用
linux·wsl
微小的鱼5 小时前
Linux的渲染与显示系统链路
android·java·linux
lisanmengmeng5 小时前
alertmanger 标签 rules 打上分组标签
linux·运维·服务器
Android系统攻城狮6 小时前
Linux FFmpeg深度解析之av_write_frame调用流程与实战(三十三)
linux·运维·服务器·ffmpeg·音视频进阶·ffmpeg音视频
Linux-lucky17 小时前
45-Linux学习之旅之防火墙与WEB加固
linux·前端·网络·学习·ubuntu
禁默18 小时前
启元 Q1 二次开发实践:Ubuntu 部署与仿真验证,从 PrimeConsole 到 ROS 2 Humble + RViz
linux·运维·ubuntu
skywalk816318 小时前
把 去也网站 从 Ubuntu 搬到 FreeBSD:一次 Service Jail + nginx 的部署实录
linux·运维·nginx·ubuntu·freebsd