Как насчет find start_directory -type d -exec my_cmd {} \;
/a
в Вашем примереtype d
указывает только на каталоги. type f
для файлов. Оставьте этот аргумент и в пользу файлов и в пользу каталогов.cmd
в Вашем примере{}
заменяется найденным именем каталога\;
не забывайте это, команда не будет работать без него.Example1: Это распечатает все имена каталогов полного пути под / домой:
find /home -type d -exec echo {} \;
Example2: Это - Ваш вариант использования:
find /a -type d -exec echo chmod g+x {} \;
Это печатает команды, не выполняет их. Можно проверить, действительно ли это, что Вы хотите и если так, можно передать его по каналу для избиения (или zsh, если Вы желаете):
find /a -type d -exec echo chmod g+x {} \; | bash
Я нашел это решение на SuperUser названным: Корневая файловая система смонтирована только для чтения на начальной загрузке на хинду Linux, который точно походит на Вашу проблему. Решение состояло в том, чтобы удостовериться что root
сервису включили в Вашей начальной загрузке runlevel. Это сервисы, которые были предложены в качестве бывший должный быть запущенными в начальной загрузке runlevel:
bootmisc
consolefont
device-mapper
dmcrypt
fsck
hostname
hwclock
keymaps
localmount
modules
net.lo
netmount
network
procfs
root
svscan
swap
sysctl
sysfs
termencoding
urandom