Самая очевидная оборотная сторона - когда Вы начинаете создавать файлы/каталоги в общем каталоге, ожидая, что другие пользователи получат доступ к ним.
Конечно, это - только вопрос не упущения установить корректный umask прежде, чем сделать материал, который должен быть совместно использован всеми пользователями.
Другой протест (не действительно оборотная сторона, после того как Вы знаете о нем) состоит в том, когда Вы начинаете делать материал sudo, такой как установка локальных программ, рубиновых драгоценных камней, яйца Python (не, ОС управляет пакетами, очевидно), создавая конфигурационные файлы, и так далее.
Вы попадете в беду для umask, наследован sudo сессией, поэтому только базируйтесь, сможет получить доступ к файлам/директорам, которые Вы создаете. sudo может быть настроен для автоматической установки umask путем, Вы хотите: этот вопрос покрыт на superuser.com.
Не ответ "только для Bash", но возможно полезный:
echo "$PWD///" | tr -s '/'
Возможный в "чистом ударе", но только с extglob
активный.
$ shopt -s extglob
$ A="////qsd/////sdfgfg//qsd//////"
$ echo ${A//\/+(\/)/\/}
/qsd/sdfgfg/qsd/
ОБНОВЛЕНИЕ: Циновка (+1) имеет верное представление..., мой ответ только работает на нечетные числа "/"
этому не нужен "extglob", который будет установлен.
var =" $PWD///"; var =" $ {var//\/\//}"; эхо "$var"
только Bash, используя переменную:
# code:
shopt -s extglob
A="$PWD//";
echo "Original: $A";
echo "Result: ${A//+(\/)//}"
# output:
Original: /home/myhome/Projects/Bob/build//
Result: /home/myhome/Projects/Bob/build/
// = поиск и замена, продолжайте поиск и замена
+ (/) = соответствовать одному или нескольким из «/»
// = заменить, «/»
Для лучшего визуального примера скажем, что «z» нужно сжимать, чтобы лучше видеть это, не требуя отсечения косой и не иметь нашего поиска / замены с толку с инфраструктурой $ {var // Узор / строка}:
# code:
shopt -s extglob
A=zzz/zzz/zzzzz/zzzz/zzzz;
echo $A;
echo ${A//+(z)/z}
# output:
zzz/zzz/zzzzz/zzzz/zzzz
z/z/z/z/z