| imho.ws |
![]() |
|
|
|||||||
|
Сообщения:
Перейти к новому /
Последнее
|
Опции темы |
|
|
# 1 |
|
Banned
Регистрация: 30.10.2004
Адрес: USA
Сообщения: 41
![]() |
Вопрос по условию проверки наличия файлов по маске в шелле
хочу:
if [ ! -f /abc/de/\*.zip ] then..... это я так пытался проверить, есть ли в фолдере хоть один zip-файл. не работает, хоть тресни. Получается, что в таких выражениях wildcards не применимы? Последний раз редактировалось Hubbitus; 17.08.2010 в 12:54. Причина: Выделение части сообщения из другого треда |
|
|
|
|
# 2 | |
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Да какой wildcard? У Вас же звездочка экранирована! То есть он проверяет исключительно наличие файла с именем "*.zip"! И вообще, в задаче проверки нескольких файлов, команда test (и ее короткий алиас [) сравнивают числа и строки. То есть в Вашем случае, если глобинг (когда он будет, не как сейчас) будет раскрыт в один единственный файл - то сравнение даст нужный Вам вариант, если оно не раскроется вообще - то будет опять проверено наличие файла "*.zip", если раскроется в больше чем один файл - будет ошибка количества аргументов сравнения. То есть так делать в принципе нельзя.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. |
|
|
|
|
|
# 3 | |
|
Banned
Регистрация: 30.10.2004
Адрес: USA
Сообщения: 41
![]() |
Цитата:
Я решил эту проблему вот таким корявым копипастом: if [ "$(ls -A *.zip 2>/dev/null)" ] then ... Мои индийские коллеги делают это же направляя результат ls в файл и считая строчки в этом файле. Последний раз редактировалось The Pig; 17.08.2010 в 09:28. |
|
|
|
|
|
# 4 |
|
мод
IMHO Кодер-200(6,7,8) Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Я бы сделал так:
Код:
if [ $(ls -1A *.php 2>/dev/null | wc -l) -gt 0 ]
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям! Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru Pahan-Hubbitus. Последний раз редактировалось Hubbitus; 17.08.2010 в 13:03. |
|
|