Если вы пользователь Linux, то наверняка слышали о консольном приложении chmod . Это полезный инструмент, который позволяет изменять разрешения файловой системы с помощью сеанса терминала или эмулятора терминала. Когда вы его запускаете, он сразу меняет разрешения, которые вы указываете для файлов и каталогов. Но вам может потребоваться изменить права доступа к файлам отдельно от разрешений каталога и наоборот. Вот как это можно сделать.
Есть несколько способов сделать это. , но мой любимый и самый надежный способ сделать это – комбинировать chmod с инструментами xrags и find . Следующая команда изменит разрешения только для файлов.
find/path/to/location -type f -print0 | xargs -0 chmod 644
Здесь find выводит список всех файлов в указанном месте. Ключ -type f указывает ему выводить только файлы и исключать каталоги. Ключ -print0 позволяет обрабатывать имена файлов таким образом, чтобы имена файлов или каталогов, содержащие пробелы или новые строки, обрабатывались правильно.
Аналогичная соответствующая команда может использоваться и для каталогов. Единственная часть, которую вам нужно изменить, это -type f на -type d:
find/path/to/location -type d -print0 | xargs -0 chmod 755
Совет: вы можете сэкономить свое время и меньше печатать, используя этот трюк.
- Сначала примените разрешения файловой системы к файлам и папкам, запустив chmod в рекурсивном режиме:
chmod -R 644/path/to/location
Он применит разрешения rw-rr ко всем файлам и папкам в указанном месте.
- Затем выполните команду только для каталогов:
find/path/to/location -type d -print0 | xargs -0 chmod 755