Czy istnieje sposób na wykonanie zdalnego „ls” podobnie jak „scp” robi zdalne kopiowanie w standardowej powłoce linux?
Czy istnieje sposób na wykonanie zdalnego „ls” podobnie jak „scp” robi zdalne kopiowanie w standardowej powłoce linux?
Odpowiedzi:
Zawsze możesz to zrobić:
ssh user@host ls -l /some/directory
Spowoduje to SSH do hosta, uruchomienie ls, zrzut danych wyjściowych z powrotem do Ciebie i natychmiastowe odłączenie.
scp
i rsync
połączenia, być może sftp
również i to wszystko.
alias rls="ssh user@host ls -l"
Uruchom ponownie powłokę i rls /some/directory
powinien działać.
Aby wyświetlić listę wszystkich plików w katalogu:
rsync host.name.com:directory/path/'*'
Dla czegoś takiego jak znajdź katalog / ścieżka -ls
rsync -r host.name.com:directory/path
bash: rsync: command not found
. Myślę, że to sugeruje, że używa SSH w tle?
ls -l
. W moim systemie nie wygląda na to, żeby istniała opcja tylko listy plików.
Wszystkim przychodzącym przez Google na to pytanie, ponieważ szukają sposobu na wyświetlenie listy zdalnych plików, ale nie mogą uzyskać dostępu do zdalnego serwera za pośrednictwem ssh (typowy przypadek dla serwerów kopii zapasowych), można użyć „sftp”.
Przykład:
sftp username@hostname.xyz
ls
cd somedir
exit
Rozpocznij interaktywną sesję w określonym zdalnym katalogu:
sftp [user@]host[:dir]
Uważam, że najczęściej używam tego, aby uzyskać wynik ls, prostą listę plików bez wszystkich uprawnień i dat i tak dalej, i przechowywać go w pliku lokalnym.
{ ssh me@host.com "cd /dir/of/interest; ls -1f *.txt;" } > /home/me/listoffiles.txt
Możesz uruchomić cokolwiek chcesz w ramach cytatów. Wszystkie dane wyjściowe kończą się w lokalnym pliku tekstowym. Lub jeśli chcesz uruchomić duży nieprzyjemny skrypt na serwerze i przechwycić wszystkie dane wyjściowe, nawet błędy:
{ ssh me@host.com <script.remote.sh } > /home/me/output.log 2>/home/me/output.err
{ }
nie są potrzebne.