Можно ли запустить chmod
для установки папок на 0755 и файлов на 0644, или мне нужно применить 0755 ко всем папкам по отдельности?
3 ответа
Вы можете сделать это с помощью команды find
, либо через -exec
либо с помощью команды piped:
find . -type d -print0 | xargs -0 chmod 0755
или же
find . -type d -exec chmod 0755 {} \;
Тип -type d
будет обрабатывать все каталоги. Вы также можете запустить те же команды, что и выше, с -type f
для обработки файлов (просто поменяйте местами 0755 и 0644).
В основном вы можете сделать это с разрешением "X" в символическом режиме chmod, что в основном означает «x, но только тогда, когда это имеет смысл»:
chmod -R u=rwX,go=rX /path/to/dir
Это автоматически установит 755 для каталогов и 644 для файлов, за исключением того, что, если какие-либо файлы уже имеют какие-либо разрешения на выполнение, он примет это намеренно (то есть они на самом деле исполняемые файлы) и также установит их на 755.
Думайте просто: только две строки (bash и нет python !!!)
сначала все файлы (включая каталоги): chmod 644 -R *
тогда только подкаталоги: chmod 755 -R */