Поэтому изучение юниксовой оболочки надо начинать не с вот этого всего, но с команды find, а потом сразу переходить к awk и sed. Остальное приложится либо клиент отвалится. :)
Клиент в любом случае отвалится, как ты перед ним не выплясывай — потому что не увидит прямой связи со своими рабочими функциями. Феромонами их чтоли подманивать, как у муравьёв.
Приложится и останется тот самый 0.001% седобородых с рождения, коих совершенно недостаточно чтобы закрыть потребности индустрии.
Скала эта ваша не часть системы, её надо принести откуда-то и установить. Авка же и сед, а также перл, тцл и сам шелл обычно имеются в базовой системе.
Ну, меня вот просветление шандарахнуло как раз при попытке изобразить find негодными, но уже известными средствами. Когда понял, что написал в командной строке два вложенных цикла — и эта хрень, kurwa mać, работает.
Почему команда find такая странная и отличается от прочих средств командного мира — отдельный философский вопрос.
В манах BSD написано лучше, вернее, точнее и короче, чем у GNU (я подчеркнул важные смысловые отличия):
find -- walk a file hierarchy
find recursively descends the directory tree for each file listed, evaluating an expression (composed of the “primaries” and “operands” listed below) in terms of each file in the tree.
Чтобы понять, что это такое, find можно попробовать представить себе как ещё один дополнительный неинтерактивный командный интерпретатор поверх обычной командной среды, который выполняет пакетные задания, полученные от юзера. То есть это, скажем так, не совсем «специальная утилита для поиска файлов», как пишут линупсоиды.
Такого нетипичного в системных утилитах осталось преизрядно. Собственно, и awk с sed не так уж типичны, а уж tar, если не знать его первоначального назначения, и вовсе инопланетяне подбросили. Отцы-основатели единообразием не заморачивались.
Так все упомянутые и не являются системными утилитами. Лучше рассматривать их как отдельные языки специального назначения со встроенным интерпретатором.
Основное, с чего полагается начинать новичку в Юниксе, отцы-основатели разжевали в упомянутой выше книжке («The UNIX Programming Environment») для этих самых новичков, которые во времена отцов-основателей понимались как программирующие пользователи, а не то, что в наше время.
Так и шелл пусть и странный, но довольно универсальный язык программирования.
Ну, а на мой почти что K&R GCC хоть и ругается, но компилирует в годные бинарники. По крайней мере, компилировал, пока я из этого дурдома пионеров не сбежал. С тех пор в основном шеллом и обхожусь; при моих объемах данных и нынешней скорости процессоров хватает выше крыши. Так что здесь скорее первична как раз идеология сверху донизу и на каждой ступеньке программируемой среды.
no subject
Date: 2022-07-03 14:21 (UTC)no subject
Date: 2022-07-03 16:13 (UTC)Приложится и останется тот самый 0.001% седобородых с рождения, коих совершенно недостаточно чтобы закрыть потребности индустрии.
no subject
Date: 2022-07-03 17:40 (UTC)no subject
Date: 2022-07-03 16:33 (UTC)no subject
Date: 2022-07-03 17:35 (UTC)Первые два учебных часа 1 сентября —
урок мужестваvimtutor.no subject
Date: 2022-07-03 18:23 (UTC)Я когда нужно авку или сед, уже переключаюсь на скалу. На скале все можно запрограммировать, и больше.
no subject
Date: 2022-07-03 18:36 (UTC)no subject
Date: 2022-07-04 22:05 (UTC)no subject
Date: 2022-07-04 14:45 (UTC)no subject
Date: 2022-07-04 16:06 (UTC)В манах BSD написано лучше, вернее, точнее и короче, чем у GNU (я подчеркнул важные смысловые отличия):
find -- walk a file hierarchy
find recursively descends the directory tree for each file listed, evaluating an expression (composed of the “primaries” and “operands” listed below) in terms of each file in the tree.
(man.netbsd.org/find.1)
Чтобы понять, что это такое, find можно попробовать представить себе как ещё один дополнительный неинтерактивный командный интерпретатор поверх обычной командной среды, который выполняет пакетные задания, полученные от юзера. То есть это, скажем так, не совсем «специальная утилита для поиска файлов», как пишут линупсоиды.
no subject
Date: 2022-07-04 17:06 (UTC)no subject
Date: 2022-07-04 17:09 (UTC)Основное, с чего полагается начинать новичку в Юниксе, отцы-основатели разжевали в упомянутой выше книжке («The UNIX Programming Environment») для этих самых новичков, которые во времена отцов-основателей понимались как программирующие пользователи, а не то, что в наше время.
no subject
Date: 2022-07-04 18:13 (UTC)Ну, а на мой почти что K&R GCC хоть и ругается, но компилирует в годные бинарники. По крайней мере, компилировал, пока я из этого дурдома пионеров не сбежал. С тех пор в основном шеллом и обхожусь; при моих объемах данных и нынешней скорости процессоров хватает выше крыши. Так что здесь скорее первична как раз идеология сверху донизу и на каждой ступеньке программируемой среды.
no subject
Date: 2022-07-04 18:28 (UTC)no subject
Date: 2022-07-04 18:39 (UTC)