ls列出指定目录中的匹配项

时间:2016-05-04 11:58:24

标签: linux bash unix ubuntu ls

如何在指定目录中列出匹配的结果?

在我的Ubuntu服务器上,如果我列出目录的内容,它会正确列出它。我的工作目录是/ var / crash。

#pwd
/var/crash
# ls -l
-rw-r--r-- 1 bob bob   121876 Aug  8  2015 results.xml
-rw-rw-r-- 1 bob bob      126 Nov  3  2015 start.txt
-rw-rw-r-- 1 bob bob       43 Jul 28  2015 exit.txt

我想说我要列出所有包含' tar'的文件。在这个例子中,应该只有一个匹配,即start.txt

# ls -l *tar*
-rw-rw-r-- 1 bob bob      126 Nov  3  2015 start.txt
到目前为止,所有人都很好。但是,如果我包含目录(/ var / crash),它会列出所有文件。

# ls -l *tar* /var/crash
-rw-r--r-- 1 bob bob   121876 Aug  8  2015 results.xml
-rw-rw-r-- 1 bob bob      126 Nov  3  2015 start.txt
-rw-rw-r-- 1 bob bob       43 Jul 28  2015 exit.txt

我猜我的语法告诉ls列出 tar 的所有匹配项以及/ var / crash中的所有内容。列出指定目录中匹配项的正确语法是什么?

1 个答案:

答案 0 :(得分:2)

您需要将模式与目录一起指定:

ls -l /var/crash/*tar*

否则,对于ls -l *tar* /var/crash,您告诉ls对两个参数采取行动:/var/crash*tar*事实上,*tar*会在ls到达之前展开,因此ls可能会有更多参数。