如何在终端中查找特定后缀的隐藏文件?
如何查找特定后缀的隐藏文件
好问题!这其实是shell通配符的默认行为导致的——默认情况下,*这类通配符不会匹配以.开头的隐藏文件,所以你之前的la *ew或ls -a *ew只能找到非隐藏的目标文件。下面给你两种实用的解决方法:
方法一:直接使用shell通配符
你可以直接指定匹配以.开头的文件,结合后缀规则来查找:
- 最直接的命令:
ls .*ew
这个通配符.*ew表示“以.开头,后面跟着任意数量的任意字符,最后以ew结尾”的文件,刚好能匹配你例子中的.5new。 - 更精准的版本(避免匹配类似
..ew这类异常文件名):ls .?*ew
这里的?代表至少一个任意字符,确保.后面有内容,不会匹配到不符合预期的文件名。
方法二:用find命令(更灵活可靠)
如果需要更精细的控制(比如只找普通文件、不深入子目录),find命令是更好的选择:
find . -maxdepth 1 -type f -name ".*ew"
各参数的作用:
.:从当前目录开始查找-maxdepth 1:限制仅查找当前目录,不遍历子目录-type f:只匹配普通文件(排除隐藏目录等非文件类型)-name ".*ew":指定匹配规则——以.开头、结尾为ew的文件名
额外技巧:同时显示隐藏和非隐藏的目标文件
如果想一次性列出所有后缀为ew的文件(包括隐藏和非隐藏),可以用:
ls *ew .*ew
或者利用bash的大括号扩展简化:
ls {*,.*}ew
内容的提问来源于stack exchange,提问作者Shreyansh Jain
相关产品推荐
相关产品推荐

