Измените все права доступа к файлам и папкам каталога на 644/755


Как бы я изменил все файлы на 644 и все папки на 755 с помощью chmod с linux командная строка? (Терминал)

7 131

7 ответов:

один подход может быть с помощью find:

для каталогов

find . -type d -print0 | xargs -0 chmod 0755

для файлы

find . -type f -print0 | xargs -0 chmod 0644

самый простой способ это сделать:

chmod -R u+rwX,go+rX,go-w /foo

что в основном означает:

до change file mod es -Rвосторженно давая:

  • uсер: read,wобряд и ЕXразрешения ecute,
  • gгруппы и

самый короткий, который я мог бы придумать, это:

chmod -R a=r,u+w,a+X /foo

который работает на GNU / Linux, и я считаю, что на Posix в целом (из моего чтения: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/chmod.html).

это:

  1. установить файл/каталог р__р__р__ (0444)
  2. добавить W для рук, чтобы получить РВ_р__р__ (0644)
  3. настройка выполнить для всех если каталог (для dir 0755, 0644 для папка.)

важно отметить, что разрешение step 1 очищает все биты выполнения, поэтому Шаг 3 добавляет только биты выполнения для каталогов (никогда не файлы). Кроме того, все три шага происходят до рекурсии каталога (так что это не эквивалентно, например,

chmod -R a=r /foo
chmod -R u+w /foo
chmod -R a+X /foo

так как a=r удаляет x из каталогов, то chmod не может рекурсировать в них.)

это сработало для меня:

find /A -type d -exec chmod 0755 {} \;
find /A -type f -exec chmod 0644 {} \;

сделать оба в один проход с:

find -type f ... -o -type d ...

как найти тип F или D типа, а не первого ... для файлов и второй ... для дирса. В частности:

find -type f -exec chmod --changes 644 {} + -o -type d -exec chmod --changes 755 {} +

оставить у --changes Если вы хотите, чтобы молча работать.

проще всего для меня запомнить две операции:

chmod -R 644 dirName
chmod -R +X dirName

+X влияет только на каталоги.

Это может работать:

chmod -R 755 *  // All files and folders to 755.

chmod -R 644 *.*  // All files will be 644.