Толик Панков
hex_laden
............ .................. ................

October 2025
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Толик Панков [userpic]
Устранение глюка с find

Преамбула


Оказалось, в моей функции create_list() копия был обнаружен малозаметный и посему дико поганый баг. А баг был с командой find. Например, если запустить ее в любом каталоге с параметрами

find /home/smallwolfie/openvpn/configs -maxdepth 1 -iname *.ovpn, то она найдет все файлы *.ovpn

Но вот если команду запустить в каталоге с файлами (/home/smallwolfie/openvpn/configs), то она упадет:

cd /home/smallwolfie/openvpn/configs
find /home/smallwolfie/openvpn/configs -maxdepth 1 -iname *.ovpn


Вывод:

find: paths must precede expression: riseup-nl.ovpn
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]


Решение


Заключить маску файла в кавычки:

find /home/smallwolfie/openvpn/configs -maxdepth 1 -iname "*.ovpn"

Вывод:

/home/smallwolfie/openvpn/configs/vpnbook-pl226-tcp80.ovpn
/home/smallwolfie/openvpn/configs/vpnbook-de4-tcp80.ovpn
/home/smallwolfie/openvpn/configs/vpnbook-us1-tcp80.ovpn
/home/smallwolfie/openvpn/configs/vpnbook-us2-tcp80.ovpn
/home/smallwolfie/openvpn/configs/vpnbook-ca222-tcp80.ovpn
/home/smallwolfie/openvpn/configs/vpnbook-ca198-tcp80.ovpn
/home/smallwolfie/openvpn/configs/vpnbook-fr1-tcp80.ovpn
/home/smallwolfie/openvpn/configs/riseup-ca.ovpn
/home/smallwolfie/openvpn/configs/riseup-nl.ovpn
/home/smallwolfie/openvpn/configs/riseup-us.ovpn
/home/smallwolfie/openvpn/configs/vpnbook-fr8-tcp80.ovpn


Обновленная функция целиком


Пример из файла скрипта для соединения с определенным VPN-сервером

create_list() #$1 - dir, $2 - file mask
{
    FOUNDLST=""
    echo "Find in $1"
    for FLE in $(find $1 -maxdepth 1 -iname "$2"|sort); do
	if [ -n "$FLE" ]; then
	    FOUNDLST="$FOUNDLST"`basename $FLE`"\n"
	fi
    done
}


Обновленный скрипт


На GitHub

Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2019/09/17/ustranenie-glyuka-s-find/

Tags: ,
Comments
(Anonymous)

Ты шаришь по сети. Почему бы тебя в какойнибудь блокчейн проект не пристроить работать?

Не сильно понимаю в этом вашем блокчейне, но если будет конкретное ТЗ и стимул разобраться - пишите в телеграм.