千家信息网

Linux上如何实现文件操作

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍了Linux上如何实现文件操作,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。按名称列出文件最简单的方法是使用 ls 命
千家信息网最后更新 2026年10月31日Linux上如何实现文件操作

这篇文章主要介绍了Linux上如何实现文件操作,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

按名称列出文件

最简单的方法是使用 ls 命令按名称列出文件。毕竟,按名称(字母数字顺序)列出文件是默认的。你可以选择 ls(无细节)或 ls -l(大量细节)来决定你看到什么。

$ ls | head -6 8pgs.pdf Aesthetics_Thank_You.pdf alien.pdf Annual_Meeting_Agenda-20190602.pdf bigfile.bz2 bin $ ls -l | head -6 -rw-rw-r--  1 shs     shs      10886 Mar 22  2019 8pgs.pdf -rw-rw-r--  1 shs     shs     284003 May 11  2019 Aesthetics_Thank_You.pdf -rw-rw-r--  1 shs     shs      38282 Jan 24  2019 alien.pdf -rw-rw-r--  1 shs     shs      97358 May 19  2019 Annual_Meeting_20190602.pdf -rw-rw-r--  1 shs     shs   18115234 Apr 16 17:36 bigfile.bz2 drwxrwxr-x  4 shs     shs    8052736 Jul 10 13:17 bin

如果你想一次查看一屏的列表,可以将 ls 的输出用管道送到 more 命令中。

按相反的名字顺序排列文件

要按名称反转文件列表,请添加 -r( 反转(Reverse))选项。这就像把正常的列表倒过来一样。

$ ls -r $ ls -lr

按文件扩展名列出文件

ls 命令不会按内容分析文件类型,它只会处理文件名。不过,有一个命令选项可以按扩展名列出文件。如果你添加了 -X ( 扩展名(eXtension))选项,ls 将在每个扩展名类别中按名称对文件进行排序。例如,它将首先列出没有扩展名的文件(按字母数字顺序),然后是扩展名为 .1、.bz2、.c 等的文件。

只列出目录

默认情况下,ls 命令将同时显示文件和目录。如果你想只列出目录,你可以使用 -d( 目录(Directory))选项。你会得到一个像这样的列表:

$ ls -d */ 1/     backups/     modules/       projects/     templates/ 2/     html/        patches/       public/       videos/ bin/   new/         private/       save/

按大小排列文件

如果你想按大小顺序列出文件,请添加 -S( 大小(Size))选项。但请注意,这实际上不会显示文件的大小(以及其他文件的细节),除非你还添加 -l( 长列表(Long listing))选项。当按大小列出文件时,一般来说,看到命令在按你的要求做事情是很有帮助的。注意,默认情况下是先显示最大的文件。添加 -r 选项可以反过来(即 ls -lSr)。

$ ls -lS total 959492 -rw-rw-r--  1 shs   shs  357679381 Sep 19  2019 sav-linux-free-9.tgz -rw-rw-r--  1 shs   shs  103270400 Apr 16 17:38 bigfile -rw-rw-r--  1 shs   shs   79117862 Oct  5  2019 Nessus-8.7.1-ubuntu1110_amd64.deb

按属主列出文件

如果你想按属主列出文件(例如,在一个共享目录中),你可以把 ls 命令的输出传给 sort,并通过添加 -k3 来按第三个字段排序,从而挑出属主一栏。

$ ls -l | sort -k3 | more total 56 -rw-rw-r-- 1 dory  shs      0 Aug 23 12:27 tasklist drwx------ 2 gdm   gdm   4096 Aug 21 17:12 tracker-extract-files.121 srwxr-xr-x 1 root  root     0 Aug 21 17:12 ntf_listenerc0c6b8b4567 drwxr-xr-x 2 root  root  4096 Aug 21 17:12 hsperfdata_root               ^               |

事实上,你可以用这种方式对任何字段进行排序(例如,年份)。只是要注意,如果你要对一个数字字段进行排序,则要加上一个 n,如 -k5n,否则你将按字母数字顺序进行排序。这种排序技术对于文件内容的排序也很有用,而不仅仅是用于列出文件。

按年份排列文件

使用 -t( 修改时间(Time modified))选项按年份顺序列出文件 —— 它们的新旧程度。添加 -r 选项,让最近更新的文件在列表中最后显示。我使用这个别名来显示我最近更新的文件列表。

$ alias recent='ls -ltr | tail -8'

请注意,文件的更改时间和修改时间是不同的。-c( 更改时间(time Changed))和 -t(修改时间)选项的结果并不总是相同。如果你改变了一个文件的权限,而没有改变其他内容,-c 会把这个文件放在 ls 输出的顶部,而 -t 则不会。如果你想知道其中的区别,可以看看 stat 命令的输出。

$ stat ckacct   File: ckacct   Size: 200             Blocks: 8          IO Block: 4096   regular file Device: 801h/2049d      Inode: 829041      Links: 1 Access: (0750/-rwxr-x---)  Uid: ( 1000/     shs)   Gid: ( 1000/     shs) Access: 2020-08-20 16:10:11.063015008 -0400 Modify: 2020-08-17 07:26:34.579922297 -0400 <== content changes Change: 2020-08-24 09:36:51.699775940 -0400 <== content or permissions changes  Birth: -

按组别列出文件

要按关联的组别对文件进行排序,你可以将一个长列表的输出传给 sort 命令,并告诉它在第 4 列进行排序。

$ ls -l | sort -k4

按访问日期列出文件

要按访问日期(最近访问的日期在前)列出文件,使用 -ltu 选项。u 强制"按访问日期"排列顺序。

$ ls -ltu total 959500 -rwxr-x---  1 shs     shs        200 Aug 24 09:42 ckacct  <== most recently used -rw-rw-r--  1 shs     shs       1335 Aug 23 17:45 lte

单行列出多个文件

有时,精简的文件列表更适合手头的任务。ls 命令甚至有这方面的选项。为了在尽可能少的行上列出文件,你可以使用 --format=comma 来用逗号分隔文件名,就像这个命令一样:

$ ls --format=comma 1, 10, 11, 12, 124, 13, 14, 15, 16pgs-landscape.pdf, 16pgs.pdf, 17, 18, 19, 192.168.0.4, 2, 20, 2018-12-23_OoS_2.pdf, 2018-12-23_OoS.pdf, 20190512_OoS.pdf, '2019_HOHO_application working.pdf' …

喜欢用空格?使用 --format=across 代替。

$ ls --format=across z* z              zip            zipfiles      zipfiles1.bat   zipfiles2.bat zipfiles3.bat  zipfiles4.bat  zipfiles.bat  zoom_amd64.deb  zoomap.pdf zoom-mtg

增加搜索的深度

虽然 ls 一般只列出单个目录中的文件,但你可以选择使用 -R 选项( 递归(Recursively))地列出文件,深入到整个目录的深处。

$ ls -R zzzzz | grep -v "^$" zzzzz: zzzz zzzzz/zzzz: zzz zzzzz/zzzz/zzz: zz zzzzz/zzzz/zzz/zz: z zzzzz/zzzz/zzz/zz/z: sleeping

另外,你也可以使用 find 命令,对深度进行限制或不限制。在这个命令中,我们指示 find 命令只在三个层次的目录中查找:

$ find zzzzz -maxdepth 3 zzzzz zzzzz/zzzz zzzzz/zzzz/zzz zzzzz/zzzz/zzz/zz

选择 ls 还是 find

当你需要列出符合具体要求的文件时,find 命令可能是比 ls 更好的工具。

与 ls 不同的是,find 命令会尽可能地深入查找,除非你限制它。它还有许多其他选项和一个 -exec 子命令,允许在找到你要找的文件后采取一些特定的行动。

感谢你能够认真阅读完这篇文章,希望小编分享的"Linux上如何实现文件操作"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

文件 命令 排序 目录 顺序 名称 大小 扩展名 时间 输出 数字 日期 篇文章 内容 字段 字母 年份 细节 选择 限制 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 哈尔滨大商圈互联网科技有限公司 湖南永感互联网科技有限公司 互联网科技公司的优势 互联网科技与金融科技 上海挚品互联网科技 互联网科技宣传片 国外互联网科技网站 丰台科技园 互联网公司 青海省互联网新科技 西藏七维空间互联网科技有限公司 晓花互联网科技有限公司网址 知域互联网科技有限公司大骗子 晋城互联网科技 南博望互联网科技有限公司 济南有互联网科技公司吗 互联网科技圈年度人物 广州互联网高科技取餐柜 兰石爱特工业互联网科技分公司 重庆科技产业互联网有哪些 互联网科技快速发展优美句子 科技互联网政务服务 互联网金融 科技 广州凡科互联网科技 华夏恒生互联网科技013171 四川慕妮娅互联网科技有限公司 济南有互联网科技公司吗 长沙互联网科技 云南省自由互联网科技有限公司 启辰互联网科技 城市宝互联网科技有限公司
0