Удалите соответствие файлу из каждой подпапки текущего dir

Протокол SSH определяется какой ssh и sshd программы принимают. (Существует стандарт, определенный для него, но это после совершения вещь и главным образом проигнорировано, когда одна из реализаций добавляет новые опции.) С тех пор существует несколько реализаций тех (OpenSSH, F-Secure, PuTTY, и т.д.) иногда Вы будете находить, что один из них не поддерживает тот же протокол как другие. В основном это определяет согласование аутентификации и создание потока мультиплексированных данных. Этот поток может нести один или несколько (с OpenSSH и ControlMaster) терминальные сеансы и нуль или больше туннелей (передающий сокетные соединения или от локального или от удаленного другой стороне; передача X11 является особым случаем удаленной передачи). Это также определяет "подсистемы", которые могут использоваться по потоку; терминальные сеансы являются основной подсистемой, но другие могут быть определены. sftp один из них.

ssh утилита использует протокол SSH, чтобы говорить sshd на другой машине. То, как это работает, зависит, на какой версии это (см. выше), но суть его - то, что это пытается выяснить который версия протокола SSH использовать, затем это и sshd согласуйте поддерживаемые методы аутентификации, затем это пытается пройти проверку подлинности, Вы использующий один из тех методов (просьба о пароле удаленного пользователя / фраза paasword/S-Key с закрытым ключом по мере необходимости), и на успешной аутентификации создаете мультиплексированный поток с sshd.

sshd, как сказано выше, реализует сторону сервера протокола SSH.

sftp (в настоящее время, единственный стандарт) подсистема, определенная в большинстве sshd реализации. Когда подсистему SFTP требуют, sshd подключения sftp-server к сессии подсистемы; sftp программа затем говорит с ним, так же к ftp но с передачами файлов, мультиплексированными на потоке вместо того, чтобы использовать отдельные соединения в качестве с ftp.

su не имеет никакого отношения ssh, sshd, или sftp, кроме того, поскольку могут быть модули PAM, чтобы принять меры, чтобы мультиплексированный поток был доступен в оболочке или прогоне программы ею.

4
04.11.2011, 22:13
3 ответа

Если я понимаю Ваше описание правильно, Вы хотите удалить .htaccess от подкаталогов текущего каталога, но не от их подкаталогов. Другими словами, Вы хотите удалить foo/.htaccess но нет foo/bar/.htaccess. Затем это просто:

rm */.htaccess

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

for d in */; do cp -p .htaccess "$d"; done
4
27.01.2020, 20:56
  • 1
    Ничего себе! */ является новым для меня, Спасибо! BTW, я совершенно уверен, автор просто хочет откатывать начальную букву find. Возможно, мы должны спросить? –  ztank1013 04.11.2011, 22:46
find /path/to/dir -name .htaccess -delete
0
27.01.2020, 20:56
  • 1
    Для текущего каталога можно сказать find . … –  janmoesen 04.11.2011, 20:45
  • 2
    Да, но... о. Я пропустил тот оператор. Это является более общим так или иначе. –  Kevin 04.11.2011, 20:50
  • 3
    Это пересекает каталог рекурсивно, я не думаю, что это было предназначено (данный -maxdepth 1 в вопросе существует не подразумеваемый recursivity). –  Gilles 'SO- stop being evil' 04.11.2011, 22:12

Следующее предполагает, что Вы ранее работаете find -type d -maxdepth 1 -print0 | xargs -0 -n1 cp .htaccess из того же каталога Вы выполните этого:

find . -maxdepth 2 -type f -name .htaccess -exec rm -v {} \;

(Подробная) опция-v является дополнительной, но она помогает видеть, какие файлы на самом деле удалены.

0
27.01.2020, 20:56

Теги

Похожие вопросы