Пробелы в сценарии bash не работают [закрыто]

Хорошо, я нашел ответ здесь в Википедии:

Когда поясняется опция X:

...Он применяет разрешения на выполнение к каталогам независимо от их текущие разрешения и применяет разрешения на выполнение к файлу, который уже имеет по крайней мере, один бит разрешения на выполнение уже установлен (либо владелец, группа или другое) ...

Я действительно не могу понять, почему кто-то может захотеть применить разрешение x для любого пользователя (владельца, группы или другого), если другой пользователь уже у вас уже есть это разрешение... или, другими словами, дайте другим разрешение на выполнение, если оно есть у владельца, но кто-то счел это лучшим поведением по умолчанию, и вот как оно работает, пойди разберись .

Я изменил свой код на:

chmod -R ugo=r,a+X,ug+x

поскольку порядок имеет значение, теперь он будет вести себя так, как ожидалось.

1
20.11.2016, 08:36
1 ответ

Если вы хотите разделить имена файлов новой строкой, установите IFS на $ '\ n' и отключите подстановку:

set -f
IFS=$'\n' files=($(grep -o '^[^:]*' /tmp/mimes))
set +f

Обратите внимание, что это не работает, если ваши имена файлов содержат символы новой строки (в дополнение к двоеточиям, которые прерываются из-за того, как вы извлекаете имена с помощью grep).

0
28.01.2020, 01:07

Теги

Похожие вопросы