Не с chmod
один. Необходимо будет использовать find
:
find some_dir -name '.?*' -prune -o -exec chmod 755 {} +
Или с zsh
(или ksh93 -G
, или с tcsh
после set globstar
) globbing:
chmod 755 -- some_dir some_dir/**/*
(можно также сделать это с fish
или bash -O globstar
, но остерегайтесь этого bash
версии до 4,3 и fish
следуйте за символьными ссылками при убывании каталогов. Это было частично зафиксировано в ударе 4.3, в котором Вы будете все еще получать файлы в символьных ссылках на каталоги, но не больше в subdirs тех как в 4,2, и полностью зафиксированный в 5,0),
Вы уверены, что хотите сделать весь исполняемый файл файлов хотя?
find /Your/Folder -type d -regextype posix-extended -regex ^[^\.].*$ -exec chmod -R 755 {}
^[^\.]
: исключит все имена файлов, начинающиеся с точки.
[
и *
потребность заключается в кавычки для оболочки, .
не делает. Это будет всегда соответствовать так или иначе с тех пор -regex
соответствует целому пути, не имени файла, и целый путь запускается с /Your/Folder
, не точка.
– Stéphane Chazelas
24.10.2013, 13:04
Пробовал с помощью команды «Ниже», и она работала нормально
find path| sed -n '/^\.\/\./!p'|awk '{print "chmod -R" " " "755" " " $1}'|sh