python - 管道符和ssh传文件
阿神
阿神 2017-04-18 10:19:20
0
3
806

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

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

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

阿神
阿神

闭关修行中......

répondre à tous(3)
大家讲道理

Explication des paramètres de la commande :

gzip -h

Usage: gzip [OPTION]... [FILE]...
Compress or uncompress FILEs (by default, compress FILES in-place).

Mandatory arguments to long options are mandatory for short options too.

  -c, --stdout      write on standard output, keep original files unchanged
  -d, --decompress  decompress
  -f, --force       force overwrite of output file and compress links
  -h, --help        give this help
  -l, --list        list compressed file contents
  -L, --license     display software license
  -n, --no-name     do not save or restore the original name and time stamp
  -N, --name        save or restore the original name and time stamp
  -q, --quiet       suppress all warnings
  -r, --recursive   operate recursively on directories
  -S, --suffix=SUF  use suffix SUF on compressed files
  -t, --test        test compressed file integrity
  -v, --verbose     verbose mode
  -V, --version     display version number
  -1, --fast        compress faster
  -9, --best        compress better
    --rsyncable   Make rsync-friendly archive

With no FILE, or when FILE is -, read standard input.

gunzip -h

Usage: gzip [OPTION]... [FILE]...
Compress or uncompress FILEs (by default, compress FILES in-place).

Mandatory arguments to long options are mandatory for short options too.

  -c, --stdout      write on standard output, keep original files unchanged
  -d, --decompress  decompress
  -f, --force       force overwrite of output file and compress links
  -h, --help        give this help
  -l, --list        list compressed file contents
  -L, --license     display software license
  -n, --no-name     do not save or restore the original name and time stamp
  -N, --name        save or restore the original name and time stamp
  -q, --quiet       suppress all warnings
  -r, --recursive   operate recursively on directories
  -S, --suffix=SUF  use suffix SUF on compressed files
  -t, --test        test compressed file integrity
  -v, --verbose     verbose mode
  -V, --version     display version number
  -1, --fast        compress faster
  -9, --best        compress better
    --rsyncable   Make rsync-friendly archive

With no FILE, or when FILE is -, read standard input.

Report bugs to <bug-gzip@gnu.org>.

Je ne sais pas ce qui se passe. Les documents d'aide pour les deux commandes sont les mêmes. Le développeur est paresseux

.

En d'autres termes, -c ne compresse pas le fichier, mais le sort directement sur la sortie standard.

gunzip -, au lieu de recevoir un fichier compressé à partir d'un fichier, le reçoit à partir d'une entrée standard.

| : canal
> : redirection


Analyse de l'intégralité de la commande

gzip -c aa.txt | ssh root@192.168.1.1 "gunzip -c - > /home/bb.txt"
  • gzip -c aa.txt : compressez le fichier aa.txt et affichez le résultat compressé sur la sortie standard

  • ssh root@192.168.1.1 "命令":Exécutez la commande sur la machine distante

  • Commande gunzip -c - : Décompressez le fichier. Le fichier compressé d'origine est transmis à partir de l'entrée standard et le résultat de la sortie est directement émis vers la sortie standard

  • > /home/bb.txt : Rediriger la sortie standard vers le fichier /home/bb.txt


Cette opération sur un dossier échouera

gzip ne prend pas en charge les opérations de répertoire

阿神

Vous pouvez soit passer complètement à netcat pour l'envoi et la réception.
Ou compressez-le avec du tar local et décompressez-le à l'extrémité opposée.

洪涛

Piping prend la sortie de la commande précédente comme entrée. Vous pouvez également d'abord le compresser dans un fichier temporaire, puis utiliser scp

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal