2016-05-04 4 views
0

Как мне сопоставить полученные результаты в указанном каталоге?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 перечислить все матчи дегтя И все в/вар/аварии. Каков правильный синтаксис для сопоставления списков в указанном каталоге?

ответ

2

Вы должны указать шаблон вместе с каталогом:

ls -l /var/crash/*tar* 

В противном случае, с ls -l *tar* /var/crash вы говорите ls действовать против двух параметров: /var/crash и *tar*. Фактически, *tar* будет расширен до того, как ls достигнет его, поэтому может быть больше параметров для ls.

+2

Чтобы узнать больше о глобализации: http://mywiki.wooledge.org/glob – andlrc