C'è un modo per fare una "ls" remota come "scp" fa una copia remota in una shell linux standard?
C'è un modo per fare una "ls" remota come "scp" fa una copia remota in una shell linux standard?
Risposte:
Puoi sempre farlo:
ssh user@host ls -l /some/directory
Ciò consentirà a SSH di eseguire l'host, eseguire ls, scaricare nuovamente l'output e disconnettersi immediatamente.
scp
e rsync
chiama, forse sftp
anche, e basta.
alias rls="ssh user@host ls -l"
Riavvia la shell e rls /some/directory
dovrebbe funzionare.
Per elencare tutti i file in una directory:
rsync host.name.com:directory/path/'*'
Per qualcosa come trovare directory / path -ls
rsync -r host.name.com:directory/path
bash: rsync: command not found
. Immagino che questo implichi che sta usando SSH in background?
ls -l
. Sul mio sistema, non sembra che ci sia un'opzione per elencare solo i file.
Per tutti coloro che arrivano tramite Google a questa domanda perché stanno cercando un modo per elencare i file remoti ma non possono accedere al server remoto tramite ssh (caso comune per i server di backup), è possibile utilizzare 'sftp'.
Esempio:
sftp username@hostname.xyz
ls
cd somedir
exit
Avvia una sessione interattiva in una directory remota specifica:
sftp [user@]host[:dir]
Trovo che il mio uso più frequente di questo sia quello di ottenere il risultato ls, un semplice elenco di file senza tutte le autorizzazioni e le date e così, e tenerlo in un file locale.
{ ssh me@host.com "cd /dir/of/interest; ls -1f *.txt;" } > /home/me/listoffiles.txt
Puoi eseguire tutto ciò che vuoi tra virgolette. Tutto l'output finisce nel tuo file di testo locale. O se vuoi eseguire un grosso brutto script sul server e catturare tutto il suo output, anche gli errori:
{ ssh me@host.com <script.remote.sh } > /home/me/output.log 2>/home/me/output.err
{ }
non sono necessari.