考虑一个包含以下内容的目录。 abc-dir1
是一个目录。其他是文件。
abc-dir1
abc-file1
.abc-file2
def-file1
ls -d *abc*
生成列表1:
abc-dir1
abc-file1
我想显示名称与*abc*
匹配的所有目录和文件(包括隐藏目录和文件)。清单2是我想要的:
abc-dir1
abc-file1
.abc-file2
但是ls -a -d *abc*
仍然会生成列表1.因此*abc*
的存在似乎会覆盖-a
选项的效果。有没有办法用ls显示列表2?
答案 0 :(得分:5)
隐藏文件以点开头,常规文件不是,所以:
ls -d {.,}*abc*
答案 1 :(得分:4)
开启dotglob
选项。
$ shopt -s dotglob
$ printf '%s\n' *abc*
abc-dir1
abc-file1
.abc-file2
如果您确实要使用abc
(包含或不包含初始.
)显示“ start ”的文件,请使用扩展模式。
$ shopt -s extglob
$ printf '%s\n' ?(.)abc*
我使用printf
代替ls
。除非您使用ls
的一个或多个选项进行排序,显示其他元数据等,否则无需仅运行外部程序来显示文件名。
答案 2 :(得分:0)
ls -al和grep的组合就可以了..
mebada@mebada-T430:~$ ls -al | grep zil
drwx------ 4 mebada mebada 4096 Jan 18 01:14 .mozilla