Как выполнить рекурсивно chmodили chownдля скрытых файлов?
sudo chmod -R 775 * не работает со скрытыми файлами.
То же самое касается sudo chown -R user:group.
Как выполнить рекурсивно chmodили chownдля скрытых файлов?
sudo chmod -R 775 * не работает со скрытыми файлами.
То же самое касается sudo chown -R user:group.
Ответы:
Если вы в порядке и chmod'ing текущий каталог, сделайте это и позвольте -Rсделать тяжелую работу. -Rне игнорирует скрытые файлы.
sudo chmod -R 775 .
lsне разборчив; пытаясь разобрать это напрашивается на неприятности. Правильный подход заключается в использовании оболочки оболочки.
sudo chmod 775 -Rсойти с ума, поэтому придерживайтесь этого ответа ,
* по умолчанию не включает скрытые файлы, но если вы находитесь в bash, вы можете сделать это с помощью:
shopt -s dotglob
Подробнее об этом читайте в builtinруководстве Bash :
Если установлено, Bash включает имена файлов, начинающиеся с `. ' в результатах расширения имени файла.
Это также позволит *включить скрытые файлы.
chmod -R 775 *
Отключить его с помощью:
shopt -u dotglob
zsh?
(D)классификатор chmod -R 775 *(D)
Другим вариантом является использование findмне нравится, так как вы можете иметь очень мелкозернистый контроль над ним.
find <path to start from> -exec chown <options> {} \+
find -path '<path to include>' -exec chown <options> {} \+
Единственный недостаток - это findразный синтаксис в разных версиях.
Все файлы в текущем каталоге, рекурсивно, включая скрытые файлы:
chmod 755 -R ./* ./.[!.]*
Все файлы в текущем каталоге, не рекурсивно, включая скрытые файлы:
chmod 755 ./* ./.[!.]*
Это не изменит имя файла исключения, начиная с 2 точек, например, "./..thisonescapesunharmed.txt"
Кроме того, будьте осторожны, чтобы не удалить бит «x», иначе все ваши каталоги не будут доступны (нужно, чтобы бит x записывался в каталог).
Запомните это предупреждение: никогда не используйте голое, *а ./*вместо этого.
Чтобы избежать проблем с настройкой разрешений для каталогов, используйте findвместо этого.
find . -type f -exec chmod `VALUE` {} \;
* .*) не самый безопасный способ сделать это. В частности, он будет возвращаться в родительский каталог, что означает, что онchmodтакже является родным по текущему каталогу. Правильный путь будет* ..?* .[^.]*или, что еще лучше (учитывая, что подстановочные знаки могут не совпадать ни с одним файлом)$(ls -A).