技术问询:如何用ls -lL命令结合元字符列出指定目录目标文件
解决方法:使用
ls -lL结合shell元字符筛选目标文件 嘿,我来帮你搞定这个文件筛选需求!咱们要实现的是用ls -lL配合shell通配符(元字符),找出datafiles目录里符合以下两个条件的文件:
- 文件名中包含点
. - 点
.之后的任意位置存在字母f或u
完整命令
ls -lL datafiles/*.*[fu]*
命令拆解说明
让我逐个部分解释这个命令的逻辑:
ls -lL:这是你指定的起始命令,其中-l会以长格式显示文件信息(权限、所有者、大小等),-L会跟随符号链接,显示链接指向的原文件的信息,而非链接本身。datafiles/:明确指定要操作的目标目录,避免当前目录的干扰。*.*[fu]*:这是核心的通配符匹配规则,对应咱们的筛选条件:- 第一个
*:匹配文件名中点.之前的任意字符(包括空字符,所以像.config.f这种以.开头的隐藏文件也能被匹配到) .:精确匹配文件名中的点字符*[fu]*:匹配点之后的字符序列,确保其中至少包含一个f或u——前面的*匹配到f/u之前的任意内容,[fu]精准匹配f或u,后面的*匹配f/u之后的任意内容
- 第一个
示例验证
假设datafiles目录下有这些文件:readme.txt, photo.png, log.f.2024, config.u.ini, .env.f,那么执行上面的命令后,会列出:
-rw-r--r-- 1 user group 123 Apr 10 10:00 datafiles/log.f.2024 -rw-r--r-- 1 user group 456 Apr 10 10:05 datafiles/config.u.ini -rw-r--r-- 1 user group 78 Apr 10 10:10 datafiles/.env.f
这些就是完全符合你需求的文件啦!
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

