3

Я хочу изменить разрешение каждого файла в каталоге. Я использую chmod 777 но теряю время, если у меня есть 50 файлов.

Как сделать так, чтобы все файлы в каталоге стали rwx не меняя их один за другим?

4 ответа4

7

chmod -cR 777 *

Изменит все файлы, включая подкаталоги, рекурсивно (опция R), включая подкаталоги, но также сообщит, когда это произойдет (опция c).

Вместо того, чтобы изменять все файлы со слишком широкими разрешениями, вы можете вместо этого изменить владельца.

sudo chown -hR tomcat

Приведенная выше строка меняет принадлежность к серверу приложений tomcat, вам необходимо выяснить, каким пользователем пользуется ваш веб-сервер. Вы можете легко увидеть это, выполнив

ps aux

(Опция h предназначена для изменения владельца символической ссылки, если она встречается, но не для файлов, на которые она ссылается)

4

То, что вы делаете, более чем вероятно, небезопасно, и приведенную ниже команду следует вызывать только в том случае, если вы полностью согласны с проблемами безопасности.

find . -type d -exec chmod 777 '{}'* \;

Это будет рекурсивно проходить через текущий каталог и каждый подкаталог и соответственно изменять разрешения; если я не прояснил это достаточно, это очень плохая идея (777 разрешений)

1

Этот скрипт выполнит команду для всех файлов в текущем каталоге:

sudo find . -name "*" | awk '{print("chmod 777 "$1)}'| /bin/sh

Чтобы сначала протестировать скрипт, вы можете просто вывести операторы, не отправляя их в оболочку для выполнения:

sudo find . -name "*" | awk '{print("chmod 777 "$1)}'

Этот же шаблон с использованием awk обычно полезен для выполнения команд пакетной оболочки.

0

Просто введите:

chmod 777 *

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .