linux中查询某目录下以点开头的文件长列表展示

您所在的位置:网站首页 linux显示隐藏文件前面有个点 linux中查询某目录下以点开头的文件长列表展示

linux中查询某目录下以点开头的文件长列表展示

2023-10-22 00:44| 来源: 网络整理| 查看: 265

正常查看所有文件命令,-a表示可以查看隐藏文件 ls -a 通过查找命令,过滤出点开头的文件 grep "^\..*" 其中,^\. 表示以点开头,因为点在Linux中是特殊字符(需要反斜杠转义),表示任意某个字符,必须要匹配一个字符,空格也行,空格也表示一个字符,但是不能是空, * 表示某字符匹配0次或者多次,.* 连在一起就表示任意长度的字符 如果少了一个点是^\.* ,表示转义后的点符号匹配0次或多次,所以是不能只查出点开头的文件 正确命令是: ls -a | grep “^\..*”

但是如果想以长列表的格式输出呢,加个-l选项么? 经过测试 ls -al | grep “^\..*” 没有任何输出,原因是 ls -al 通过管道传过去的是长列表格式,每行数据不只是文件名,还有文件权限,属主,大小,时间等信息,就不能以上面的条件进行过滤了 通过观察长列表格式,点开头的文件都有时间参数,“数字+空格+点”这个格式就能匹配出点开头的文件 正确命令是:ls -al | grep “[0-9] \.” 但是这里有个小缺陷,如果文件中有data123 .log类似于这样格式的文件,那上面的命令就失效了

再来介绍个利用gawk进行过滤的方法 前面还是ls -al 通过管道传递输出给gawk gawk逐行处理数据,默认以空格为分隔符,对每行进行切割,用$1取第一个字段,$2取第二个字段,以此类推,$0 表示本行的原数据,我们只要匹配文件名对应的 $9 字段即可,$9 ~ /^\./ 其中~表示精确匹配,篇幅有限,关于gawk其他的语法格式不再赘述 正确的命令是: ls -al | gawk ’ $9 ~ /^\./{print $0}’

菜鸟手书,欢迎指正



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3