Midnight Commander не имеет такого контроля над операциями с подкаталогами. Вид сделки типа «все или ничего». Как вы сказали, вы можете контролировать записи верхнего уровня, но не более того.
Я полагаю, вы могли бы написать какой-нибудь скрипт для использования в меню F2 ...
По-другому, вроде клудги, но сработало бы ...
find . -type d -name ".git" -exec chmod 000 "{}" \;
Из-за этого все подкаталоги .git будут нечитаемыми, MC выведет диалоговое окно с сообщением об ошибке, скажет «Продолжить» и продолжит обработку.
После этого:
find . -type d -name ".git" -exec chmod 750 "{}" \;
восстановить нужные разрешения. (Я сам использую 750 и 640, многие предпочитают 755 и 644 ... используйте там, где вы предпочитаете, вместо «750»)
Ха! и как смешение моей идеи «положить его в меню F2» ... вы можете поместить эти две команды в меню F2 ... делая это почти (почти!) безболезненный.
РЕДАКТИРОВАТЬ:
По запросу:
#
# Restore permissions for any .git subdirectories to 755
g Restore .git directories to 755 permissions
if [ "x$PWD" = "x$HOME" ]; then
exit
fi
find . -type d -name ".git" -exec chmod 755 "{}" \; 2>/dev/null
#
# Remove permissions for any .git subdirectories
G Hide .git directories with 000 permissions
if [ "x$PWD" = "x$HOME" ]; then
exit
fi
find . -type d -name ".git" -exec chmod 000 "{}" \; 2>/dev/null
#
Сохраните это в файл ~/.config/mc/menu
Если этот файл уже существует, добавьте его в КОНЕЦ (некоторые вещи должны быть первыми в файле, не хотите испортить это).
Если этот файл не существует, то записи здесь заменят все записи меню F2/ пользователя по умолчанию, которые обычно просматривались. Если вам нужны эти пункты меню назад (некоторые из них удобны!), Найдите файл с именем mc.menu (обычно он находится в / etc/ mc/), скопируйте его в ~/ .config/ mc/ menu и снова добавьте выше до конца. КОНЕЦ!
Если вы используете более старую версию mc, вам может потребоваться выполнить поиск файла mc.menu , а файл меню должен быть в ~/.mc.menu ... сложный, да, немного. Но недавно mc пересмотрел расположение своих конфигурационных файлов, чтобы отразить лучшие практики (предложения XDG), и переместил все в ~/.config/mc/ . Справочная страница mc (1) очень полезна, ищите пользовательское меню .
Это добавляет две команды:
g (lowercase g) which will RESTORE the 755 permissions for any .git subdirs
G (uppercase g) which will REMOVE the permissions (set to 000) from any .git subdirs
Я добавил тест, чтобы предотвратить выполнение этого в вашем $ HOME, хотя это не разрушительно ... просто не получалось это сделать.
Наслаждайтесь!