Я вошел на сервер через sftp через терминал.
Когда я запускаю команду
chmod -R 755 ./*
Я получаю сообщение об ошибке. You must supply a numeric argument to the chmod command.
, Как мне применить рекурсивный chmod 755, находясь в sftp?
От man sftp
:
chmod mode path
Измените права доступа к файлу в режиме. путь может содержать символы glob(3) и может соответствовать нескольким файлам.
man 7 glob
(man 3 glob
ссылки glob (7)) описывает *,? и [] шаблоны подстановочных знаков, с которыми мы знакомы при использовании ls
. Таким образом, вы можете использовать:
chmod 755 ./*
chmod 755 ./*/*
chmod 755 ./*/*/*
несколько раз, пока вы не дойдете до всех файлов и не получите ошибку:
Couldn't setstat on "./*/*/*": No such file or directory
Перед таким массовым изменением вы можете заранее проверить, какие каталоги будут затронуты с помощью lls
(от man sftp
):
lls [ls-options [path]]
Показать список локальных каталогов либо пути, либо текущего каталога, если путь не указан. Опции ls могут содержать любые флаги, поддерживаемые командой ls(1) локальной системы. путь может содержать символы glob(3) и может соответствовать нескольким файлам.
вот так (укажите абсолютный путь к lls
чтобы избежать неожиданностей):
lls -Rla /path
Вы также можете использовать lls -Rla /path
чтобы убедиться, что ваш chmod
работал должным образом .
Возможно, вы не сможете. Есть большая вероятность, что chmod, доступный вам через FTP или SFTP, не поддерживает рекурсивную опцию. Команды, доступные в FTP/SFTP, часто представляют собой несколько урезанные версии того, что вы могли бы получить локально под оболочкой. Если вам повезет, chmod может действовать рекурсивно даже без опции -R
но если вам не повезет, вам придется пройтись по дереву, chmod'ing каждый уровень по одному.
Я работал на сервере, где рекурсив не поддерживал, как указано выше в комментарии Николь. Подстановочный символ chmod сработал, но время его ожидания истекло при попытке запуска в безумной структуре папок.
В конце концов, мне удалось добиться успеха с Filezilla - хотя я не мог рекурсивно использовать chmod через терминал, Filezilla могла каким-то образом это сделать через графический интерфейс.