Есть ли способ сделать удаленный "ls" так же, как "scp" делает удаленное копирование в стандартной оболочке linux?
Есть ли способ сделать удаленный "ls" так же, как "scp" делает удаленное копирование в стандартной оболочке linux?
Ответы:
Вы всегда можете сделать это:
ssh user@host ls -l /some/directory
Это приведет к SSH к хосту, запустит ls, сбросит вывод и немедленно отключится.
scp
и rsync
вызовы, может быть sftp
, и все.
alias rls="ssh user@host ls -l"
Перезапустите вашу оболочку, и она rls /some/directory
должна работать.
Чтобы вывести список всех файлов в каталоге:
rsync host.name.com:directory/path/'*'
Для чего-то вроде найти каталог / путь -ls
rsync -r host.name.com:directory/path
bash: rsync: command not found
. Я предполагаю, что это подразумевает использование SSH в фоновом режиме?
ls -l
. В моей системе не похоже, что есть возможность просто перечислить файлы.
Для всех, кто приходит через Google на этот вопрос, потому что они ищут способ составить список удаленных файлов, но не могут получить доступ к удаленному серверу через ssh (общий случай для серверов резервного копирования), вы можете использовать 'sftp'.
Пример:
sftp username@hostname.xyz
ls
cd somedir
exit
Запустите интерактивный сеанс в определенном удаленном каталоге:
sftp [user@]host[:dir]
Я считаю, что чаще всего использую это, чтобы получить результат 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
{ }
они не нужны.