Назад | Перейти на главную страницу

Есть ли способ сделать удаленную «ls» так же, как «scp» делает удаленную копию?

Есть ли способ сделать удаленную "ls" так же, как "scp" делает удаленную копию в стандартной оболочке Linux?

Вы всегда могли сделать это:

ssh user@host ls -l /some/directory

Это подключит SSH к хосту, запустит ls, вернет вам вывод и немедленно отключится.

Чтобы вывести список всех файлов в каталоге:

rsync host.name.com:directory/path/'*'

Для чего-то вроде найти каталог / путь -ls

rsync -r host.name.com:directory/path

Для всех, кто приходит через Google к этому вопросу, потому что они ищут способ перечислить удаленные файлы, но не могут получить доступ к удаленному серверу через ssh (общий случай для серверов резервного копирования), вы можете использовать sftp.

Пример:

sftp username@hostname.xyz
ls
cd somedir
exit

Запустите интерактивный сеанс в определенном удаленном каталоге:

sftp [user@]host[:dir]

Да. SSH и выполните ls:

ssh host ls /path

Вы можете легко создать сценарий для большей гибкости или использовать синтаксис host: path scp использует.

Я считаю, что чаще всего я использую это, чтобы получить результат ls, простой список файлов без всех разрешений, дат и тому подобное, и сохранить его в локальном файле.

{ ssh me@host.com "cd /dir/of/interest; ls -1f *.txt;" } > /home/me/listoffiles.txt

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

{ ssh me@host.com <script.remote.sh } > /home/me/output.log 2>/home/me/output.err