3.5_文件和目录列表

要想知道系统中有哪些文件,可以使用列表命令(ls)。本节将描述ls命令和可用来格式化其输出信息的选项。

总结

ls命令最基本的形式会显示当前目录下的文件和目录:

命令/参数备注
ls按列排序显示当前目录下的文件和目录
-F区分文件和目录。在目录名后加了正斜线(/),在可执行文件(比如上面的my_script文件)的后面加个星号
-a把隐藏文件(以点号开始的文件)和普通文件及目录一起显示出来
-R递归选项,列出了当前目录下包含的子目录中的文件
-l产生长列表格式的输出,包含了目录中每个文件的更多相关信息
-l --time=atime显示出已经更改过的文件访问时间
文件匹配规则备注
?问号可用于过滤器字符串中替代任意位置的单个字符
*星号可匹配零个或多个字符
[ ]中括号表示一个字符位置并给出多个可能的选择
[ai]匹配该位置为a或i的文件名
[a – i]指定字符范围,例如字母范围[a – i] ,即该位置从a到i的字母都会匹配
[!a]排除该位置为a的文件名

1.基本列表功能

ls命令最基本的形式会显示当前目录下的文件和目录:

$ ls
Desktop   Downloads        Music     Pictures  Templates   Videos
Documents examples.desktop my_script Public    test_file

注意,ls命令输出的列表是按字母排序的(按列排序而不是按行排序)。如果用户用的是支持彩色的终端仿真器,ls命令还可以用不同的颜色来区分不同类型的文件。LS_COLORS环境变量控制着这个功能。(第6章中会讲到环境变量。)不同的Linux发行版根据各自终端仿真器的能力设置这个环境变量。

如果没安装彩色终端仿真器,可用带-F参数的ls命令轻松区分文件和目录。使用-F参数可以得到如下输出:

$ ls -F
Desktop/   Downloads/       Music/      Pictures/  Templates/   Videos/
Documents/ examples.desktop my_script*  Public/    test_file

-F参数在目录名后加了正斜线(/),以方便用户在输出中分辨它们。类似地,它会在可执行文件(比如上面的my_script文件)的后面加个星号,以便用户找出可在系统上运行的文件。

基本的ls命令在某种意义上有点容易让人误解。它显示了当前目录下的文件和目录,但并没有将全部都显示出来。Linux经常采用隐藏文件来保存配置信息。在Linux上,隐藏文件通常是文件名以点号开始的文件。这些文件并没有在默认的ls命令输出中显示出来,因此我们称其为隐藏文件。

要把隐藏文件和普通文件及目录一起显示出来,就得用到-a参数。下面是一个带有-a参数的ls命令的例子:

在这里插入图片描述

所有以点号开头的隐藏文件现在都显示出来了。注意,有三个以.bash开始的文件。它们是bash shell环境所使用的隐藏文件,在第6章会对其进行详细的讲解。

-R参数是ls命令可用的另一个参数,叫作递归选项。它列出了当前目录下包含的子目录中的文件。如果目录很多,这个输出就会很长。以下是-R参数输出的简单例子:

$ ls -F -R
.:
Desktop/   Downloads/        Music/     Pictures/  Templates/  Videos/
Documents/ examples.desktop  my_script* Public/    test_file

./Desktop:

./Documents:

./Downloads:

./Music:
ILoveLinux.mp3*

./Pictures:

./Public:

./Templates:

./Videos:

注意,首先-R参数显示了当前目录下的内容,也就是之前例子中用户home目录下的那些文件。另外,它还显示出了用户home目录下所有子目录及其内容。只有Music子目录中包含了一个可执行文件ILoveLinux.mp3。

选项并一定要像例子中那样分开输入:ls –F –R。它们可以进行如下合并:ls –FR。

在上一个例子中,子目录中没再包含子目录。如果有更多的子目录,-R参数会继续进行遍历。正如你所看到的,如果目录结构很庞大,输出内容会变得很长。

2.显示长列表

在基本的输出列表中,ls命令并未输出太多每个文件的相关信息。要显示附加信息,另一个常用的参数是-l。-l参数会产生长列表格式的输出,包含了目录中每个文件的更多相关信息。

ls -l
total 48
drwxr-xr-x 2 christine christine 4096 Apr 22 20:37 Desktop
drwxr-xr-x 2 christine christine 4096 Apr 22 20:37 Documents
drwxr-xr-x 2 christine christine 4096 Apr 22 20:37 Downloads
-rw-r--r-- 1 christine christine 8980 Apr 22 13:36 examples.desktop
-rw-rw-r-- 1 christine christine 0    May 21 13:44 fall
-rw-rw-r-- 1 christine christine 0    May 21 13:44 fell
-rw-rw-r-- 1 christine christine 0    May 21 13:44 fill
-rw-rw-r-- 1 christine christine 0    May 21 13:44 full
drwxr-xr-x 2 christine christine 4096 May 21 11:39 Music
-rw-rw-r-- 1 christine christine 0    May 21 13:25 my_file
-rw-rw-r-- 1 christine christine 0    May 21 13:25 my_scrapt
-rwxrw-r-- 1 christine christine 54   May 21 11:26 my_script
-rw-rw-r-- 1 christine christine 0    May 21 13:42 new_file
drwxr-xr-x 2 christine christine 4096 Apr 22 20:37 Pictures
drwxr-xr-x 2 christine christine 4096 Apr 22 20:37 Public
drwxr-xr-x 2 christine christine 4096 Apr 22 20:37 Templates
-rw-rw-r-- 1 christine christine 0    May 21 11:28 test_file
drwxr-xr-x 2 christine christine 4096 Apr 22 20:37 Videos
$

这种长列表格式的输出在每一行中列出了单个文件或目录。除了文件名,输出中还有其他有用信息。输出的第一行显示了在目录中包含的总块数。在此之后,每一行都包含了关于文件(或目录)的下述信息:

下面以Music文件为例进行介绍:

drwxr-xr-x 2 christine christine 4096 May 21 11:39 Music
列属性序号列属性名示例注释
1文件类型d目录(d)、文件(-)、字符型文件(c)或块设备(b)
2文件的权限rwxr-xr-x(参见第6章)
3文件的硬链接总数2
4文件属主的用户名christine
5文件属组的组名christine
6文件的大小4096(以字节为单位)
7文件的上次修改时间May 21 11:39月 日 时间
8文件名或目录名Music

-l参数是一个强大的工具。有了它,你几乎可以看到系统上任何文件或目录的大部分信息。

在进行文件管理时,ls命令的很多参数都能派上用场。如果在shell提示符中输入man ls,就能看到可用来修改ls命令输出的参数有好几页。

别忘了可以将多个参数结合起来使用。你不时地会发现一些参数组合不仅能够显示出所需的内容,而且还容易记忆,例如ls –alF。

3.过滤输出列表

前面的例子可知,默认情况下,ls命令会输出目录下的所有非隐藏文件。有时这个输出会显得过多,当你只需要查看单个少数文件信息时更是如此。
幸而ls命令还支持在命令行中定义过滤器。它会用过滤器来决定应该在输出中显示哪些文件或目录。

这个过滤器就是一个进行简单文本匹配的字符串。可以在要用的命令行参数之后添加这个过滤器:

$ ls -l my_script
-rwxrw-r-- 1 christine christine 54 May 21 11:26 my_script
$

当用户指定特定文件的名称作为过滤器时,ls命令只会显示该文件的信息。有时你可能不知道要找的那个文件的确切名称。ls命令能够识别标准通配符,并在过滤器中用它们进行模式匹配:

 问号(?)代表一个字符;
 星号(*)代表零个或多个字符。

问号可用于过滤器字符串中替代任意位置的单个字符。例如:

$ ls -l my_scr?pt
-rw-rw-r-- 1 christine christine 0  May 21 13:25 my_scrapt
-rwxrw-r-- 1 christine christine 54 May 21 11:26 my_script
$

其中,过滤器my_scr?pt与目录中的两个文件匹配。类似地,星号可匹配零个或多个字符。

$ ls -l my*
-rw-rw-r-- 1 christine christine 0  May 21 13:25 my_file
-rw-rw-r-- 1 christine christine 0  May 21 13:25 my_scrapt
-rwxrw-r-- 1 christine christine 54 May 21 11:26 my_script
$

使用星号找到了三个名字以my开头的文件。和问号一样,你可以把星号放在过滤器中的任意位置。

$ ls -l my_s*t
-rw-rw-r-- 1 christine christine 0  May 21 13:25 my_scrapt
-rwxrw-r-- 1 christine christine 54 May 21 11:26 my_script
$

在过滤器中使用星号和问号被称为文件扩展匹配(file globbing),指的是使用通配符进行模式匹配的过程。通配符正式的名称叫作元字符通配符(metacharacter wildcards)。除了星号和问号之外,还有更多的元字符通配符可用于文件扩展匹配。可以使用中括号。

$ ls -l my_scr[ai]pt
-rw-rw-r-- 1 christine christine 0  May 21 13:25 my_scrapt
-rwxrw-r-- 1 christine christine 54 May 21 11:26 my_script
$

在这个例子中,我们使用了中括号以及在特定位置上可能出现的两种字符:a或i。中括号表示一个字符位置并给出多个可能的选择。可以像上面的例子那样将待选的字符列出来,也可以指定字符范围,例如字母范围[a – i]。即该位置从a到i的字母都会匹配。

$ ls -l f[a-i]ll
-rw-rw-r-- 1 christine christine 0 May 21 13:44 fall
-rw-rw-r-- 1 christine christine 0 May 21 13:44 fell
-rw-rw-r-- 1 christine christine 0 May 21 13:44 fill
$

另外,可以使用感叹号(!)将不需要的内容排除在外。

$ ls -l f[!a]ll
-rw-rw-r-- 1 christine christine 0 May 21 13:44 fell
-rw-rw-r-- 1 christine christine 0 May 21 13:44 fill
-rw-rw-r-- 1 christine christine 0 May 21 13:44 full
$

在进行文件搜索时,文件扩展匹配是一个功能强大的特性。它也可以用于ls以外的其他shell命令。本章随后的部分会有到更多相关的例子。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/131139.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

实体店铺必看:如何申请低手续费或免手续费的收款码

在数字支付日益普及的今天,为实体店铺如餐饮店引入低成本甚至免手续费的收款解决方案变得尤为重要。本文将详细介绍实体店铺如何申请低手续费或免手续费的收款码,助您降低运营成本,提升业务效率。 一、了解不同支付平台的政策 首先&#xf…

代码随想录图论部分-695. 岛屿的最大面积|1020. 飞地的数量

695. 岛屿的最大面积 题目:给你一个大小为 m x n 的二进制矩阵 grid 。岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0(代表水&#xff0…

6.4翻转二叉树(LC226—送分题,前序遍历)

算法: 第一想法是用昨天的层序遍历,把每一层level用切片反转。但是这样时间复杂度很高。 其实只要在遍历的过程中去翻转每一个节点的左右孩子就可以达到整体翻转的效果。 这道题目使用前序遍历和后序遍历都可以,唯独中序遍历不方便&#x…

双路四电磁铁控制比例多路阀放大器

比例多路换向阀属于换向阀类,配置外置比例放大器。它控制一个或同时操作的多个液压耗能器的运动方向和速度。 该控制装置与负载无关,且为无极的。全面的模块化系统,具有各种型号和组合选项,使用范围:装载起重机、升降工…

SpringBoot+MybatisPlus Restful示例

增删改查,分页 CREATE TABLE tbl_book ( id int NOT NULL AUTO_INCREMENT, type varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, name varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, desc_ription varchar(255) CHAR…

Python的requests库爬取商城优惠券

首先,我们需要了解要抓取的网页的结构和数据格式。在这个例子中,我们使用Python的requests库来发送HTTP请求,并使用BeautifulSoup库来解析HTML内容。 import requests from bs4 import BeautifulSoup然后,我们需要使用requests库的…

【IP-guard WebServer 远程命令执行漏洞复现(0day)】

文章目录 一、漏洞说明二、影响版本三、资产测绘四、漏洞复现五、修复建议 一、漏洞说明 IP-guard是由溢信科技股份有限公司开发的一款终端安全管理软件,旨在帮助企业保护终端设备安全、数据安全、管理网络使用和简化IT系统管理。 IP-guard Webserver远程命令执行漏…

家纺服装行业出口管理ERP解决方案

我国是世界上最大的纺织品生产出口国,有着悠久的家纺服装贸易历史。今年前8个月,我国家纺出口市场经历了震荡波动,8月单月家纺出口增速,结束连续3个月的下降趋势,由负转正。后续家纺出口市场预计将缓慢修复&#xff0c…

100+ Windows运行命令大全,装B高手必备

操作电脑关闭、重启、注销、休眠的命令细则: 用法: shutdown [/i | /l | /s | /sg | /r | /g | /a | /p | /h | /e | /o] [/hybrid] [/soft] [/fw] [/f] [/m \\computer][/t xxx][/d [p|u:]xx:yy [/c "comment"]] 没有参数 显示帮助。这与键入 /? 是一样的。…

GZ038 物联网应用开发赛题第3套

2023年全国职业院校技能大赛 高职组 物联网应用开发 任 务 书 (第3套卷) 工位号:______________ 第一部分 竞赛须知 一、竞赛要求 1、正确使用工具,操作安全规范; 2、竞赛过程中如有异议,可向现场考评…

canvas 曲线图 双数值轴 山峰图

下面的代码本人亲自撰写&#xff0c;原生不易啊。 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>D…

Linux学习-破解Root密码

破解root密码思路 1&#xff09;重启系统,进入 救援模式 开启虚拟机A&#xff0c;在此界面按e键 在linux开头的该行&#xff0c;将此行的ro修改为rw 然后空格输入 rd.break 按 ctrl x 启动&#xff0c;会看到switch_root:/# 2&#xff09;切换到硬盘操作系统环境 # chroot …

系统分区、MSR -重装系统中的一点小知识

一、前言&#xff1a; 在使用优启通装载的U盘重装系统时&#xff0c;出现了一点问题&#xff0c;问题和解决方法以及涉及知识贴在下面。 以前大都是使用微软官方的镜像系统直接写入U盘&#xff0c;将其做成系统盘&#xff08;媒体创建工具Media Creation Tool&#xff09;&am…

ubuntu16.04 交叉编译 mbedtls

在为客户交叉编译项目时需要依赖 mbedtls&#xff0c; 客户的机器是 arm64 的 ubuntu 16.04&#xff0c; 交叉编译过程中遇到几个问题。 首先&#xff0c; mbedtls 需要依赖 python, 在 cmake 的过程中&#xff0c; 如果不是使用系统默认的 cmake 可能会导致&#xff0c;mbedt…

Kali常用配置(持续更新)

1. 同步系统时间 命令&#xff1a;dpkg-reconfigure tzdata &#xff0c;这个命令可以同时更新系统时间和硬件时间。 然后选择区域和城市&#xff0c;中国可以先选择Asia&#xff0c;然后选择Shanghai 2.更换系统数据源 # vim /etc/apt/sources.list #不是root用户的话需要…

企业如何做好双十一宣传?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 马上就要双十一了&#xff0c;企业如何在业绩与口碑中实现双丰收呢&#xff1f;又如何借助这一热度做好品牌宣传呢&#xff1f;今天胡老师就从双十一前期&#xff0c;中期&#xff0c;后期…

python爬虫怎么翻页

爬虫程序的代码实现如下&#xff1a; #include <iostream> #include <string> #include <curl/curl.h>int main() {CURL *curl;CURLcode res;std::string readBuffer;curl_global_init(CURL_GLOBAL_DEFAULT);curl curl_easy_init();if(curl) {curl_easy_se…

【LeetCode笔试题】26.删除有序数组中的重复项

问题描述 给你一个非严格递增排列的数组nums&#xff0c;请你原地删除重复出现的元素&#xff0c;使每个元素只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保持一致。然后返回nums中唯一元素的个数。 考虑nums的唯一元素的数量为k&#xff0c;你需要…

编码规范集合

文章目录 前言命名规范项目命名目录命名文件命名命名严谨性 HTML 书写规范结构、样式、行为分离缩进文件编码语义化IE 兼容模式viewport为移动端设备优化&#xff0c;设置可见区域的宽度和初始缩放比例iOS 图标favicon&#xff08;网站图标&#xff0c;移动端默认可用于添加到桌…

python机器学习——随机森林

随机森林 随机森林&#xff08;Random Forest&#xff09;是一种集成学习方法&#xff0c;它通过构建多个决策树并结合它们的预测结果来进行分类或回归。 算法原理&#xff1a; 决策树&#xff08;Decision Tree&#xff09;: 随机森林由多个决策树组成。决策树是一种基于树…
最新文章