1

Я вошел на сервер через sftp через терминал.

Когда я запускаю команду

chmod -R 755 ./*

Я получаю сообщение об ошибке. You must supply a numeric argument to the chmod command. , Как мне применить рекурсивный chmod 755, находясь в sftp?

3 ответа3

3

От 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 работал должным образом .

1

Возможно, вы не сможете. Есть большая вероятность, что chmod, доступный вам через FTP или SFTP, не поддерживает рекурсивную опцию. Команды, доступные в FTP/SFTP, часто представляют собой несколько урезанные версии того, что вы могли бы получить локально под оболочкой. Если вам повезет, chmod может действовать рекурсивно даже без опции -R но если вам не повезет, вам придется пройтись по дереву, chmod'ing каждый уровень по одному.

1

Я работал на сервере, где рекурсив не поддерживал, как указано выше в комментарии Николь. Подстановочный символ chmod сработал, но время его ожидания истекло при попытке запуска в безумной структуре папок.

В конце концов, мне удалось добиться успеха с Filezilla - хотя я не мог рекурсивно использовать chmod через терминал, Filezilla могла каким-то образом это сделать через графический интерфейс.

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