Отправляет email-рассылки с помощью сервиса Sendsay

Просмотр большого количества файлов

В каталоге более 2100 файлов. Как просмотреть их по шаблону?

$ ls /var/other/dwn/tmp/*.log
-bash: /bin/ls: Argument list too long

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 28461; Возраст листа: 1192; Участников: 1683
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/604961

Ответить   Sun, 29 Oct 2006 18:51:35 +0300 (#604961)

 

Ответы:

Dmitry A. Kharitonov:

$ find /var/other/dwn/tmp/ -name "*.log"
?

Ответить   Roman I Khimov Sun, 29 Oct 2006 20:01:16 +0400 (#604965)

 

Roman I Khimov wrote:

Спасибо. работает.
Тема закрыта

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 28465; Возраст листа: 1192; Участников: 1683
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/604979

Ответить   Sun, 29 Oct 2006 19:44:15 +0300 (#604979)

 

В сообщении от 1162140695 секунд после начала Эпохи Dmitry A. Kharitonov написал(а):

Может так

$ find /var/other/dwn/tmp -name \*.log

?

Ответить   Konstantin Korikov Sun, 29 Oct 2006 18:07:35 +0200 (#604969)

 

В сообщении от Воскресенье 29 Октябрь 2006 19:07 Konstantin Korikov
написал(a):

написал(а):

Или может так ;-)
for f in *.log; do vi $f ; done

Ответить   Mon, 30 Oct 2006 10:48:21 +0300 (#605121)

 

В сообщении от 1162198101 секунд после начала Эпохи Андрей Герасимов написал(а):

Не совсем так. s/vi/echo/

Ответить   Konstantin Korikov Mon, 30 Oct 2006 10:44:10 +0200 (#605129)

 

В сообщении от 30 октября 2006 11:44 Konstantin Korikov
написал(a):

Герасимов написал(а):

Так не поможет!

*.log разворачивает ваш шелл до запуска других процессов, и
если это приводит к ошибке argument list too long (К слову,
это обычно 32K байт), то использовать эту конструкцию
вообще невозможно, где бы она ни стояла.

Тут может сработать что-нибудь вроде такого:
ls | grep '\.log$' | xargs ...
(это если в именах файлов пробелов нет)
но и в этом случае xargs будет вызван несколько раз, что
может привести к проблемам.

Еще вариант (обрабатывает поштучно):
ls | grep '\.log$' | while read name
processing "$name"
done

Ответить   "Sergey B. Khvatov" Mon, 30 Oct 2006 12:20:17 +0300 (#605136)

 

В сообщении от 1162203617 секунд после начала Эпохи Sergey B. Khvatov написал(а):

А почему же тогда мне помогло?

На весь экран что-ли? :)))

Нет. эту конструкцию невозможно использовать только когда подстановка
происходит в аргументы *внешней команды*, так как природа этого
ограничения кроется в семействе функций exec, и никак не в самом bash.

Проще всего использовать find. Только перед этим обязательно прочитать
man ;)

Ответить   Konstantin Korikov Mon, 30 Oct 2006 13:12:22 +0200 (#605170)