(二)文件管理-基础命令-ls命令的使用

文章目录

  • [1. 命令格式](#1. 命令格式)
  • [2. 基本用法](#2. 基本用法)
    • [2.1 ls](#2.1 ls)
    • [2.2 ls -a (--all)](#2.2 ls -a (--all))
    • [2.3 ls -l (--long)](#2.3 ls -l (--long))
    • [2.4 ls -lh (--human-readable)](#2.4 ls -lh (--human-readable))
    • [2.5 ls -F (--classify)](#2.5 ls -F (--classify))
  • [3. 高级用法](#3. 高级用法)
    • [3.1 ls -t](#3.1 ls -t)
    • [3.2 ls -r (--reverse)](#3.2 ls -r (--reverse))
    • [3.3 ls -S](#3.3 ls -S)
    • [3.4 ls -d](#3.4 ls -d)
    • [3.5 ls -i (--inode)](#3.5 ls -i (--inode))
    • [3.6 ls -R (--recursive)](#3.6 ls -R (--recursive))
  • [4. 注意事项](#4. 注意事项)

1. 命令格式

bash 复制代码
ls [OPTION]... [FILE]...
  • [OPTION]: 零个、一个或多个选项,用于改变 ls 命令的默认行为。
  • [FILE]: 零个、一个或多个文件或目录的路径。如果省略,则默认为当前目录。如果提供的是文件,则列出该文件的信息;如果提供的是目录,则列出该目录下的内容

2. 基本用法

2.1 ls

  • 作用 :列出当前目录下的非隐藏文件和目录(以点 . 开头的文件和目录被视为隐藏项)
  • 案例
bash 复制代码
$ ls
Documents  Downloads  Music  Pictures  file.txt

2.2 ls -a (--all)

  • 作用:列出当前目录下的所有文件和目录,包括隐藏文件。
  • 案例
bash 复制代码
$ ls -a
.  ..  .bashrc  Documents  Downloads  .profile  Music  Pictures  file.txt

2.3 ls -l (--long)

  • 作用:使用长列表格式显示详细信息,包括文件权限、链接数、所有者、所属组、文件大小、最后修改时间等。
  • 案例
bash 复制代码
$ ls -l
total 32
drwxr-xr-x 2 user user 4096 Jan 10 10:30 Documents
-rw-r--r-- 1 user user   27 Jan 10 09:15 file.txt
...
  • total 32:表示该目录下所有文件占用的磁盘空间总和(单位是 KB)
  • drwxr-xr-x:文件类型与权限
  • 2:硬链接数量
  • user:文件所有者
  • user:文件所属用户组
  • 4096:文件大小(字节)
  • Jan 10 10:30:最后修改日期和时间
  • Documents:文件/目录名

2.4 ls -lh (--human-readable)

  • 作用 :与 -l 一起使用,以更人性化的单位(K, M, G)显示文件大小。
  • 案例
bash 复制代码
$ ls -lh
total 32K
drwxr-xr-x 2 user user 4.0K Jan 10 10:30 Documents
-rw-r--r-- 1 user user  27 Jan 10 09:15 file.txt
-rw-r--r-- 1 user user 1.2M Jan 10 11:20 large_file.iso

2.5 ls -F (--classify)

  • 作用 :在文件后加一个符号,帮助快速识别文件类型
    • /:表示目录
    • *:表示可执行文件
    • @:表示符号链接(软链接)
    • |:表示 FIFO(命名管道)
    • = :表示套接字(socket)
    • 什么都不加:表示普通文件
  • 案例
bash 复制代码
$ ls -F
Documents/  Downloads/  script.sh*  link@  file.txt

3. 高级用法

3.1 ls -t

作用 :按修改时间排序,最新的文件在最前面
案例:快速找到刚才下载或创建的文件

bash 复制代码
$ ls -lt

3.2 ls -r (--reverse)

  • 作用:反向排序。通常与其他排序选项联用
  • 案例:按时间倒序排列,最旧的文件在最前面
bash 复制代码
$ ls -ltr
# 组合了 -l (长格式), -t (按时间排序), -r (反向,即最旧的在前)

3.3 ls -S

  • 作用:按文件大小排序,最大的文件在最前面
  • 案例:快速找出目录中最大的文件
bash 复制代码
$ ls -lS
# 或者使用更易读的大小格式
$ ls -lhS

3.4 ls -d

  • 作用:仅列出目录本身,而不列出目录下的内容
  • 案例:只想查看当前目录下有哪些子目录
bash 复制代码
# 通配符 */ 用于匹配所有目录
$ ls -d */
Documents/ Downloads/ Music/ Pictures/

3.5 ls -i (--inode)

  • 作用:显示每个文件的 inode 号。inode 是文件系统存储文件元信息的数据结构
  • 案例:在处理硬链接或某些底层文件系统问题时非常有用
bash 复制代码
$ ls -i
123456 file.txt  789012 Documents/

3.6 ls -R (--recursive)

作用 :递归地列出所有子目录中的内容
案例:查看一个复杂项目的完整目录树结构

bash 复制代码
$ ls -R
.:
dir1  file1.txt

./dir1:
dir2  file2.txt

./dir1/dir2:
file3.txt

4. 注意事项

  • 隐藏文件:默认情况下,以点 . 开头的文件不会被列出,必须使用 -a 选项
  • 排序问题:ls 的默认按字母顺序一列列排序
  • 文件名中的特殊字符 :如果文件名包含空格、换行符等特殊字符,直接使用 ls 的输出进行脚本处理可能会出错。在脚本中应使用其他方法 如 find 或配合 printf
  • 性能:在包含极大量文件(例如数十万个)的目录中使用 ls(尤其是 -l 或 -R)可能会导致命令执行缓慢,因为它需要为每个文件获取信息
  • 权限:如果对某个目录没有读权限,ls 该目录时会报错 Permission denied
  • 别名:在大多数 Linux 系统中,ls 通常被设置为一个别名(alias),默认已经包含了一些常用选项
bash 复制代码
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

这样,之后你只需要输入 ll 就能实现 ls -alF 的效果。

相关推荐
DARLING Zero two♡6 小时前
【Linux操作系统】简学深悟启示录:进程控制
linux·运维·服务器
wheeldown8 小时前
【Linux】为什么死循环卡不死 Linux?3 个核心逻辑看懂进程优先级与 CPU 调度密码
linux·运维·服务器·开发语言·c++·unix·进程
xxy.c8 小时前
嵌入式解谜日志-网络编程(udp,tcp,(while循环原理))
linux·运维·c语言·开发语言·数据结构
守.护10 小时前
云计算学习笔记——Linux系统网络配置与远程管理(ssh)篇
linux·运维·服务器·ssh·linux网络配置
津津有味道11 小时前
15693协议ICODE SLI 系列标签应用场景说明及读、写、密钥认证操作Qt c++源码,支持统信、麒麟等国产Linux系统
linux·c++·qt·icode·sli·15693
Lynnxiaowen12 小时前
今天我们继续学习shell编程语言的内容
linux·运维·学习·云计算·bash
喜欢你,还有大家14 小时前
Linux笔记14——shell编程基础-8
linux·前端·笔记
skywalk816315 小时前
mayfly-go:web 版 linux、数据库等管理平台
linux·运维·数据库
dbdr090115 小时前
Linux 入门到精通,真的不用背命令!零基础小白靠「场景化学习法」,3 个月拿下运维 offer,第二十四天
linux·运维·c语言·python·学习