imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Программы и Операционные системы > Пингвинятник (ОС *NIX)
Опции темы
Старый 15.08.2010, 00:42     # 1
The Pig
Banned
 
Аватар для The Pig
 
Регистрация: 30.10.2004
Адрес: USA
Сообщения: 41

The Pig Путь к славе только начался
Вопрос по условию проверки наличия файлов по маске в шелле

хочу:

if [ ! -f /abc/de/\*.zip ]
then.....

это я так пытался проверить, есть ли в фолдере хоть один zip-файл.
не работает, хоть тресни. Получается, что в таких выражениях wildcards не применимы?

Последний раз редактировалось Hubbitus; 17.08.2010 в 12:54. Причина: Выделение части сообщения из другого треда
The Pig вне форума  
Старый 16.08.2010, 12:14     # 2
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
Сообщение от The Pig Посмотреть сообщение
Но вот не нашёл такой штуки, так что пользуясь случаем, хочу:

if [ ! -f /abc/de/\*.zip ]
then.....
В свете треда, сразу скажу, говорю про баш. Более того, тема для отдельного треда. Если будем продолжать - вынесу в отдельную. Впредь так не делайте пожалуйста.
Да какой wildcard? У Вас же звездочка экранирована! То есть он проверяет исключительно наличие файла с именем "*.zip"!
И вообще, в задаче проверки нескольких файлов, команда test (и ее короткий алиас [) сравнивают числа и строки. То есть в Вашем случае, если глобинг (когда он будет, не как сейчас) будет раскрыт в один единственный файл - то сравнение даст нужный Вам вариант, если оно не раскроется вообще - то будет опять проверено наличие файла "*.zip", если раскроется в больше чем один файл - будет ошибка количества аргументов сравнения. То есть так делать в принципе нельзя.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 17.08.2010, 08:21     # 3
The Pig
Banned
 
Аватар для The Pig
 
Регистрация: 30.10.2004
Адрес: USA
Сообщения: 41

The Pig Путь к славе только начался
Цитата:
Сообщение от Hubbitus Посмотреть сообщение
В свете треда, сразу скажу, говорю про баш. Более того, тема для отдельного треда. Если будем продолжать - вынесу в отдельную.
Да выносите, нет проблем. Смысл вашего ответа "так нельзя". Это я уже заметил, оно не работает. А что именно помешало вам присовокупить "нужно вот так:" ?

Я решил эту проблему вот таким корявым копипастом:
if [ "$(ls -A *.zip 2>/dev/null)" ]
then ...

Мои индийские коллеги делают это же направляя результат ls в файл и считая строчки в этом файле.

Последний раз редактировалось The Pig; 17.08.2010 в 09:28.
The Pig вне форума  
Старый 17.08.2010, 13:01     # 4
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Я бы сделал так:
Код:
if [ $(ls -1A *.php 2>/dev/null | wc -l) -gt 0 ]
Но, как всегда, путей много, и думаю Ваш ничем не хуже.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.

Последний раз редактировалось Hubbitus; 17.08.2010 в 13:03.
Hubbitus вне форума  

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 07:04.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.