¿Hay alguna manera de hacer un "ls" remoto como "scp" hace una copia remota en un shell estándar de Linux?
¿Hay alguna manera de hacer un "ls" remoto como "scp" hace una copia remota en un shell estándar de Linux?
Respuestas:
Siempre puedes hacer esto:
ssh user@host ls -l /some/directory
Eso enviará SSH al host, ejecutará ls, volcará la salida y se desconectará inmediatamente.
scp
y rsync
, quizás sftp
también, y eso es todo.
alias rls="ssh user@host ls -l"
Reinicie su shell y rls /some/directory
debería funcionar.
Para enumerar todos los archivos en un directorio:
rsync host.name.com:directory/path/'*'
Para algo como encontrar directorio / ruta -ls
rsync -r host.name.com:directory/path
bash: rsync: command not found
. ¿Supongo que esto implica que está usando SSH en segundo plano?
ls -l
. En mi sistema, no parece que haya una opción para simplemente enumerar los archivos.
Para todos los que vienen a través de Google a esta pregunta porque están buscando una manera de enumerar archivos remotos pero no pueden acceder al servidor remoto a través de ssh (caso común para servidores de respaldo), podría usar 'sftp'.
Ejemplo:
sftp username@hostname.xyz
ls
cd somedir
exit
Inicie una sesión interactiva en un directorio remoto específico:
sftp [user@]host[:dir]
Creo que mi uso más frecuente de esto es obtener el resultado ls, una lista simple de archivos sin todos los permisos y fechas y demás, y guardarlo en un archivo local.
{ ssh me@host.com "cd /dir/of/interest; ls -1f *.txt;" } > /home/me/listoffiles.txt
Puedes ejecutar lo que quieras dentro de las comillas. Toda la salida termina en su archivo de texto local. O si desea ejecutar un gran script desagradable en el servidor y capturar toda su salida, incluso errores:
{ ssh me@host.com <script.remote.sh } > /home/me/output.log 2>/home/me/output.err
{ }
no se necesitan.