如何在指定目录中列出匹配的结果?
在我的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中的所有内容。在指定目录中列出匹配项的正确语法是什么?

最佳答案

您需要指定模式和目录:

ls -l /var/crash/*tar*

否则,使用ls -l *tar* /var/crash命令ls对两个参数执行操作:/var/crash*tar*。实际上,*tar*将在ls到达它之前展开,因此ls可能有更多参数。

09-04 10:22
查看更多