>  Q&A  >  본문

python - 管道符和ssh传文件

看到可以用一条命令传输文件

gzip -c aa.txt | ssh root@192.168.1.1 " gunzip -c - > /home/bb.txt"

请问这条命令怎么理解?
还有,发现对文件夹进行这样的操作会失败,有什么办法传输文件夹么?
求指教

阿神阿神2740일 전756

모든 응답(3)나는 대답할 것이다

  • 大家讲道理

    大家讲道理2017-04-18 10:21:20

    명령 매개변수 설명:

    gzip -h

    으아아아

    gunzip -h

    으아아아

    무슨 일이 일어나는지 모르겠습니다. 두 명령에 대한 도움말 문서가 동일합니다.

    즉, -c은 파일을 압축하지 않고 바로 표준 출력으로 출력합니다.

    gunzip -은 파일에서 압축된 파일을 받는 대신 표준 입력에서 받습니다.

    |: 파이프
    >: 리디렉션


    전체 명령어 분석

    으아아아
    • gzip -c aa.txt: aa.txt 파일을 압축하고 압축된 결과를 표준 출력

    • 으로 출력합니다.
    • ssh root@192.168.1.1 "命令":원격 컴퓨터에서 명령 실행

    • 명령 gunzip -c -: 파일의 압축을 푼다. 압축된 원본 파일을 표준 입력에서 전달하고 출력 결과를 표준 출력으로 직접 출력한다

    • > /home/bb.txt: 표준 출력을 파일로 리디렉션 /home/bb.txt


    폴더에 대한 이 작업은 실패합니다

    gzip은 디렉토리 작업을 지원하지 않습니다

    회신하다
    0
  • 阿神

    阿神2017-04-18 10:21:20

    송수신을 완전히 netcat으로 전환할 수도 있습니다.
    또는 로컬 tar로 압축한 후 반대쪽에서 압축을 풀어보세요.

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-18 10:21:20

    파이핑은 이전 명령의 출력을 입력으로 사용합니다. 먼저 임시 파일로 압축한 후 scp를 사용해도 됩니다

    회신하다
    0
  • 취소회신하다