установить права на чтение и запись в папку и все ее родительские каталоги

Мне нужно установить права на чтение и запись для root пользователя в subfolderN каталога subfolderN и все ее родительские папки до root .

Я могу сделать это руками:

 $ sudo chmod +rx /root/subfolder1/subfolder2/subfolderN $ sudo chmod +rx /root/subfolder1/subfolder2 $ sudo chmod +rx /root/subfolder1 $ sudo chmod +rx /root 

Но если N большой, я устал. Как сделать это автоматически с помощью одной команды?

  • Кажется, что chown разрешено не root-пользователю
  • Не удалось удалить файл, даже с правами root
  • Как выполнить файл без разрешения на выполнение
  • Ограничить доступ к файлам только для добавления
  • Почему я не могу удалить пустой каталог с именем пользователя www-data?
  • Как вы используете 'find' для обновления права собственности на все каталоги, файлы и символические ссылки в папке?
  • Разрешения с скриптом
  • Возможность добавлять файлы в каталог, но не удалять существующие файлы
  • 4 Solutions collect form web for “установить права на чтение и запись в папку и все ее родительские каталоги”

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

     f=/root/subfolder1/subfolder2/subfolderN while [[ $f != "/" ]]; do chmod +rx $f; f=$(dirname $f); done; 

    Это начинается с любого файла / каталога, который вы устанавливаете f тоже, и работает в каждом родительском каталоге, пока не встретит «/» (или что бы вы ни установили строку в условии цикла). Это не chmod "/".

    С csh , tcsh , ksh , zsh , bash или fish :

     sudo chmod +rx /root{,/subfolder1{,/subfolder2{,/subfolderN}}} 

    С zsh :

     f=/root/subfolder1/subfolder2/subfolderN until [[ $f = / ]] {chmod +rx $f; f=$f:h;} 

    Я не знаю, что вы пытаетесь сделать, но лучше, чем вы не принимаете рекурсивную ситуацию . Тем не менее, прочитайте фактический ответ:

    Умм … почему бы просто не использовать рекурсивный.

     sudo chmod -R +rx /root 

    Или, если вам это не нравится, вы можете дать chmod несколько каталогов:

     sudo chamod +rx /root /root/subfolder1 /root/subfolder1/subfolder2 /root/subfolder1/subfolder2/subfolderN 

    Ну, вы могли бы сделать что-то более сложное, как:

     echo "/root/subfolder1/subfolder2/subfolderN" | perl -anF'/' -e 'while($#F>0){@b=join("/",@F);`chmod +rx @b`; pop @F}' 

    Чтобы увидеть, что это будет делать, замените вызов chmod на печать:

     $ echo "/root/subfolder1/subfolder2/subfolderN" | perl -alnF'/' -e 'while($#F>0){@b=join("/",@F);print "chmod +rx @b"; pop @F}' chmod +rx /root/subfolder1/subfolder2/subfolderN chmod +rx /root/subfolder1/subfolder2 chmod +rx /root/subfolder1 chmod +rx /root 
    Interesting Posts

    Резервное копирование файлов, которые были изменены после последней резервной копии

    Как конкретно запускать встроенную команду оболочки

    если / then / else man page

    Невозможно установить 32-битный gstreamer-ffmpeg, библиотека не может найти другие 32-разрядные библиотеки

    Почему я не могу переключить виртуальный терминал сейчас?

    Каковы точки подключения, совместимые с FHS?

    LXDE: добавить сценарии оболочки и т. Д. Для запуска (Alt + F2).

    Где фактически передаются аргументы командной строки (например, «some.text»)?

    Как найти статус wlan0?

    SSH: оболочка открыта в пространстве имен IP

    Как добавить дополнительное разрешение для моего экрана?

    sudo зависает при запуске на удаленном хосте поверх ssh в скрипте без tty (-t)

    Как добиться двунаправленной синхронизации пользовательских файлов пользователем1 при сохранении mtimes?

    Как определить, действительно ли cp -u скопировал файл?

    Сценарий оболочки работает при сохранении с помощью nano, но не при сохранении с помощью Notepad ++

    Linux и Unix - лучшая ОС в мире.