원격 서버의 특정 디렉터리에 있는 최신 텍스트 파일을 내 로컬 컴퓨터로 어떻게 복사할 수 있나요?
서버 자체에서는 다음을 수행할 수 있습니다.
$ cat `cd /home/user/dir ; readlink -f $(ls -t | head -1)` > ~/newest.txt
이렇게 하면 최신 파일의 내용 이 ~/newest.txt
. $(*)
ID는 이것이 작동하지 않습니다 :
$ ssh [email protected] "cat `cd /home/user/dir ; readlink -f $(ls -t | head -1)`" > ~/newest.txt
bash: cd: /home/user/dir: No such file or directory
Connection to server.com closed.
분명히, /home/user/dir
존재하지 않습니다내 로컬 머신. 또한 플래그와 함께 SSH를 사용해 보았지만 -t
도움이 되지 않았습니다.$()
로컬 컴퓨터 대신 원격 컴퓨터에서 진드기를 가져와 구문 분석하려면 어떻게 해야 합니까 ?
그건 그렇고, 나보다 똑똑한 사람이 한 번 주장했습니다.의 출력을 ls
구문 분석하면 안 됩니다.. 이 문제를 해결하기 위해 파일 이름에 인쇄 가능한 ASCII 문자만 포함되어 있다고 안전하게 가정할 수 있습니다. 그러나 일반적인 경우를 다루는 답변이 좋을 것입니다.공부하다, 한 번이 아닙니다.
답변1
원격 서버에 명령을 전달하기 전에 쉘 확장을 방지하려면 큰따옴표 대신 작은따옴표를 사용해야 합니다.
BTW는 이제 $(
명령 대체에서 더 많이 사용됩니다. 명령 대체 사용에 대한 고려 사항 `
만 지원하는 쉘을 사용하지 않는 한 . 바라보다`
$(
여기에서 자세한 내용을 알아보세요..