Puncte:0

Cum se transmite în flux arhiva tar folosind plink?

drapel in

Aș dori să transmit în flux o arhivă .tar de pe o mașină Windows folosind PowerShell la o mașină Linux și să extrag arhiva din flux. PowerShell împinge conținutul arhivei în stdout și plink.exe transmite conținutul pentru a primi stdin-ul liniei de comandă.

Am venit cu următoarea comandă.

Get-Content file.tar | & plin.exe -C -agent „gazdă_la distanță” „tar xf -”

Cu toate acestea, comanda tar recunoaște conținutul fișierului doar parțial. Ce îmi lipsește sau există o soluție mai bună pentru problemă?

Mesaj de eroare:

tar: Se trece la antetul următor
tar: Ieșire cu starea de eșec din cauza erorilor anterioare

drapel in
Vă rugăm să postați soluția dvs. ca răspuns, în loc să o editați în întrebarea dvs.
Puncte:0
drapel in

Aparent, aceasta este o problemă de codificare. În mod implicit, Get-Content returnează conținutul fișierului ca șir codificat, dar tar se așteaptă la un flux binar. Soluția ar fi să codificați datele binare într-un format text precum Base64 și să le decodați. Am ajuns la următorul one-liner prin lent teribilă.

[System.Convert]::ToBase64String((Get-Content -AsByteStream file.tar)) | plink.exe -C -agent „gazdă_la distanță” „base64 -di | tar xvf -”

Cred că voi încărca fișiere și le voi extrage separat.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.