Skip to main content

Linux 核心命令

文件和目录管理命令 ls

在 Linux 中,ls 命令是你最常用的工具之一,用来列出目录中的文件和子目录。

1. 基本用法:直接 ls

最简单的用法就是直接敲 ls 然后回车。它会列出当前目录下的所有非隐藏文件和目录。比如你在 /home/user 目录下,敲:

ls

可能会看到:

documents  downloads  music  pictures  videos

这些是当前目录下的文件和文件夹,默认按字母顺序排列。简单粗暴,但信息量有限。

2. 显示详细信息:ls -l

想知道更多细节,比如文件大小、权限、修改时间?加个 -l 选项(长格式,long list)。敲:

ls -l

输出可能长这样:

drwxr-xr-x  2 user user  4096 Oct 10 12:34 documents
-rw-r--r--  1 user user 12345 Oct  8 09:12 readme.txt

解释一下每列的含义:

  • 第一列drwxr-xr-x):文件权限。d 表示目录,- 表示普通文件。后面是 owner、group 和 others 的读写执行权限(r=读,w=写,x=执行)。
  • 第二列21):硬链接数(目录或文件的链接计数)。
  • 第三列user):文件所有者。
  • 第四列user):文件所属组。
  • 第五列409612345):文件大小(字节)。
  • 第六列Oct 10 12:34):最后修改时间。
  • 第七列documentsreadme.txt):文件名。

这个选项是日常使用中最常见的,信息全面,适合快速了解文件状态。

3. 显示隐藏文件:ls -a

Linux 里以 . 开头的文件是隐藏文件(比如 .bashrc),默认 ls 不会显示它们。想看所有文件,包括隐藏的?用 -a(all):

ls -a

输出可能是:

.  ..  .bashrc  documents  downloads  .hidden_file
  • . 表示当前目录。
  • .. 表示上级目录。
  • .bashrc.hidden_file 这种就是隐藏文件。

如果结合 -l,也就是 ls -lals -al(顺序无所谓),就能看到隐藏文件的详细信息。

4. 按时间排序:ls -tls -tr

想知道哪些文件是最近改动的?用 -t(time)按修改时间排序,最新修改的排在前面:

ls -t

输出可能是:

readme.txt  documents  downloads

如果想反过来(最旧的在前),加个 -r(reverse):

ls -tr

5. 显示文件大小:ls -lh

ls -l 显示的文件大小是用字节,数字大了不太直观。加个 -h(human-readable),大小会变成 KB、MB、GB:

ls -lh

输出:

drwxr-xr-x  2 user user  4.0K Oct 10 12:34 documents
-rw-r--r--  1 user user   12K Oct  8 09:12 readme.txt

是不是比 4096 字节看着舒服多了?

6. 递归列出子目录:ls -R

如果目录里还有子目录,想把所有子目录的内容也列出来?用 -R(recursive):

ls -R

输出可能是:

documents:
notes.txt  project

downloads:
file.zip

documents/project:
code.py

这会把当前目录和所有子目录的内容都列出来,适合查看整个目录树。

7. 按文件类型区分:ls -F

想快速区分文件和目录?用 -F(classify),它会在文件名后加符号表示类型:

ls -F

输出:

documents/  readme.txt  script.sh*
  • / 表示目录。
  • * 表示可执行文件。
  • 普通文件没特殊符号。

8. 按扩展名排序:ls -X

想按文件扩展名排序?用 -X

ls -X

输出可能是:

readme.txt  code.py  image.jpg

同类型文件会按扩展名(比如 .txt.py)分组,适合整理特定类型文件。

9. 显示 inode 号:ls -i

每个文件在文件系统里都有一个唯一的 inode 号,想看?用 -i

ls -i

输出:

123456 documents  789012 readme.txt

第一个数字就是 inode 号,调试文件系统问题时可能会用到。

10. 组合选项:自由搭配

ls 的选项可以组合使用,比如想看详细信息、包括隐藏文件、按时间排序、显示人类可读大小?直接:

ls -lath

等价于:

ls -l -a -t -h

组合顺序无所谓,效果一样。输出会很详细,适合全面检查。

11. 按指定目录列出:ls 路径

ls 默认列出当前目录,想看其他目录的内容?直接加路径:

ls /etc

列出 /etc 目录下的文件。如果路径是文件,ls 只会显示文件名。

12. 用颜色区分:ls --color

很多 Linux 系统默认给 ls 输出加颜色(比如目录是蓝色,文件是白色,可执行文件是绿色)。如果没颜色,可以强制开启:

ls --color

想永久启用?可以给 ls 加别名,在 ~/.bashrc 里加:

alias ls='ls --color=auto'

然后运行 source ~/.bashrc 生效。

13. 只列目录:ls -d */

想只看目录,不看文件?用:

ls -d */

输出:

documents/  downloads/

这里的 */ 是通配符,匹配所有目录。

14. 结合管道和通配符

ls 还能跟其他命令配合。比如想找所有 .txt 文件:

ls *.txt

输出:

readme.txt  notes.txt

想统计有多少文件?用管道:

ls | wc -l

输出一个数字,表示文件数。

15. 常见问题和注意事项

  • 大小写敏感:Linux 文件名区分大小写,readme.txtREADME.TXT 是不同文件。
  • 权限问题:如果 ls 报错“Permission denied”,说明你没权限访问那个目录,试试用 sudo ls
  • 太长咋办:输出太多看不过来?用 ls -l | less 分页查看,按 q 退出。
  • 跨系统差异:不同 Linux 发行版(比如 Ubuntu、CentOS)或类 Unix 系统(macOS)可能有细微差异,比如颜色默认设置。

16. 不常用选项

  • -S:按文件大小排序,最大的在前。
  • -u:按访问时间排序(结合 -l 能看到访问时间)。
  • -g:像 -l 但不显示文件所有者。
  • --time=ctime:显示创建时间(需结合 -l)。