ubuntuusers.de

mv/cp Stream mit pv auslesen

Status: Gelöst | Ubuntu-Version: Server 10.04 (Lucid Lynx)
Antworten |

Sleven

Anmeldungsdatum:
12. Dezember 2011

Beiträge: 10

Guten Tag erstmal zusammen,

1. Frage: Gibt es eine Möglichkeit den Daten-Stream des Befehls "mv" oder "cp" mit Hilfe von "pv" anzeigen zu lassen? Die man bzw. Hilfeseite von "pv" geben leider nicht mehr her als die Optionen.

2. Frage: ist es möglich mit dem Befehl "pv" mehrere Dateien zu "streamen"? oder verhält der Befehl sich der Befehl in dieser Hinsicht wie "cat" ?

Ich danke euch schon mal recht herzlich für eventuelle Antworten!

Gruß

Sleven

redknight Team-Icon

Moderator & Supporter
Avatar von redknight

Anmeldungsdatum:
30. Oktober 2008

Beiträge: 21861

Wohnort: Lorchhausen im schönen Rheingau

Sleven schrieb:

Guten Tag erstmal zusammen,

Hallo zurück

1. Frage: Gibt es eine Möglichkeit den Daten-Stream des Befehls "mv" oder "cp" mit Hilfe von "pv" anzeigen zu lassen? Die man bzw. Hilfeseite von "pv" geben leider nicht mehr her als die Optionen.

Nein. pv zeigt Informationen ÜBER die pipe, nicht aber die pipe selbst an.

2. Frage: ist es möglich mit dem Befehl "pv" mehrere Dateien zu "streamen"?

Ich verstehe nicht ganz, worauf du hinauswillst: pv zeigt eine pipe an. Wenn du am Anfang mehrere Dateien reinstopfst, kommen auch mehrere durch.

Sleven

(Themenstarter)

Anmeldungsdatum:
12. Dezember 2011

Beiträge: 10

Danke für deine schnelle Antwort!

Also zeigt "pv" somit nur die Infos über die eigene Pipe. Mein Gedanke war eben einen Datenstrom mit z.B. "mv" zu erstellen und die Infos darüber mit pv ausgeben zu lassen. Nur war das ein rein theoretischer Gedanke, von der anzuwendenden Syntax hätte ich in diesem Fall keine Ahnung.

Auf die Idee bin ich gekommen als ich diesen Ausschnitt:

" A similar example, transferring a file from another process and passing the expected size to pv:

cat file | pv -s 12345 | nc -w 1 somewhere.com 3000 " Von: http://manpages.ubuntu.com/manpages/dapper/man1/pv.1.html

wobei ich persönlich das nicht mit nc übers Netz nutzen wollte sondern von Raid-Array zu Raid-Array, eben mit "mv" oder "cp".

Außerdem weiß ich auch gar nicht, ob das dann mit den Optionen -r und -t bzw. -e funktionieren würde.

Die suche über Suchmaschinen ist dazu einfach sehr zäh da "pv" dort meist als "physical volume" verwendet wird.

Zu dem zweiten Teil:

Ist das dann nicht wie bei "cat", das z.B. dann DATEI1 und DATEI2 in DATEI12 landen?

ich habe testweise "pv" so benutzt: pv -p -e -r -b [DATEI] > /[PFAD]/[NEUERDATEINAME]

Gruß

Sleven

Ps: Sorry für die Formatierung!

redknight Team-Icon

Moderator & Supporter
Avatar von redknight

Anmeldungsdatum:
30. Oktober 2008

Beiträge: 21861

Wohnort: Lorchhausen im schönen Rheingau

Sleven schrieb:

Mein Gedanke war eben einen Datenstrom mit z.B. "mv" zu erstellen und die Infos darüber mit pv ausgeben zu lassen. Nur war das ein rein theoretischer Gedanke, von der anzuwendenden Syntax hätte ich in diesem Fall keine Ahnung. […] wobei ich persönlich das nicht mit nc übers Netz nutzen wollte sondern von Raid-Array zu Raid-Array, eben mit "mv" oder "cp".

und welches Ziel verfolgst du dabei?

Zu dem zweiten Teil:

Ist das dann nicht wie bei "cat", das z.B. dann DATEI1 und DATEI2 in DATEI12 landen?

cat akzeptiert mehrere Dateien als Input für cat. pv benutzt den input, den es bkommt. Sprich: Stopfst du mit mv ein ganzes Verzeichnis rein, kommt auch ein ganzes Verzeichnis raus.

Ps: Sorry für die Formatierung!

Dann benutze doch die Forensyntax -.-

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7793

Wenn du ein Kopiertool suchst das die Geschwindigkeit anzeigt, rsync kann das.

cp/mv sollte man besser nicht mit solchen Pipes beglücken...

Sleven

(Themenstarter)

Anmeldungsdatum:
12. Dezember 2011

Beiträge: 10

@redknight:

Ich verfolge damit kein Ziel, es war eine reine Idee, zu der ich keine Lösung wusste und einfach nichts passendes gefunden habe. Mir reicht mv -v -t absolut aus.

Tools wie den Midnightcomander und andere Lösungen fand ich (für mich) einfach nicht befriedigend.

Wenn ich dich richtig verstehe müsste ich also die Dateien in einen Ordner packen damit das funktioniert?

Könntest du mir eventuell ein Syntaxbeispiel geben wo ich z.B. einen Ordner mit "mv" in in ne Pipe stecke und diese dann mit "pv" auslese? Also nur wenns keine Umstände macht und du was parat hättest.

@frostschutz

Danke für den Tip mit rsync, war mir nicht bewusst, dass dies die Geschwindigkeit anzeigen kann.

Rein aus Interesse, könntest du mir eventuell erklären wieso man cp/mv nicht mit Pipes beglücken sollte?

redknight Team-Icon

Moderator & Supporter
Avatar von redknight

Anmeldungsdatum:
30. Oktober 2008

Beiträge: 21861

Wohnort: Lorchhausen im schönen Rheingau

Sleven schrieb:

Könntest du mir eventuell ein Syntaxbeispiel geben wo ich z.B. einen Ordner mit "mv" in in ne Pipe stecke und diese dann mit "pv" auslese? Also nur wenns keine Umstände macht und du was parat hättest.

Ich weiß nicht mal, ob mv und cp lesen udn schrieben zu stdinout/stdin können (eine Bedingung um mit pipes zu arbeiten). Ich dachte, du hättest das recherchiert, da du danach fragtest 😉 Wie Frostschutz auch schon sagte, aus mehreren Gründen nutze ich rsync für derlei aktionen.

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7793

Sleven schrieb:

@frostschutz

Danke für den Tip mit rsync, war mir nicht bewusst, dass dies die Geschwindigkeit anzeigen kann.

Rein aus Interesse, könntest du mir eventuell erklären wieso man cp/mv nicht mit Pipes beglücken sollte?

Weil diese Programme wissen müssen, ob sowohl Lese- als auch Schreibvorgang erfolgreich waren. mv darf z.B. die Quelldatei nur löschen wenn wirklich die Zieldatei erfolgreich und korrekt geschrieben wurde sonst hast du Datenverlust. Nun hat man aber bei einer Pipe über solche Vorgänge keine Kontrolle mehr, sondern zwei unabhängige Prozesse (einer der liest und einer der schreibt). Solange das keine speziellen Programme sind die sich auch anderweitig über ein Protokoll austauschen können geht das dann womöglich einfach schief.

rsync macht nun genau dies; ein Kopierprogramm das sich auch über Netzwerk mit dem Zielrechner sehr genau austauscht darüber was jetzt gerade geschrieben/gelesen wird und ob dabei Fehler auftauchen.

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Hi Sleven,

erstmal noch willkommen auf dem Forum !

Sleven schrieb:

Gibt es eine Möglichkeit den Daten-Stream des Befehls "mv" oder "cp" mit Hilfe von "pv" anzeigen zu lassen?

Seit wann geben mv und cp denn einen Datenstrom aus ? - die bewegen doch nur Dateien bzw. deren Namen ...?

Du müsstest doch nochmal genauer sagen was du willst, denn Dateiinhalte oder Dateinamen anzufassen ist schon ein wesentlicher Unterschied.

track

Sleven

(Themenstarter)

Anmeldungsdatum:
12. Dezember 2011

Beiträge: 10

Hallo danke für eure Hilfe!

Ich merk schon das ich da auf dem Holzweg war. Mir war einfach unklar was pv genau macht. Habe grade eben mal den Artikel Shell/Umleitung überflogen und werd mir den nachher genauer zu Gemüte führen.

Ich war der Meinung das mv ein Datenstrom ist, den man einfach "abgreifen" kann, also quasi mit pv. Wie wenn man sich z.B. mit "htop" Sachen auf der Konsole anzeigen lässt und ohne einzugreifen. Man "beobachtet den Datenstrom und liest nur die notwendigen Infos ab, ohne ihn zu verändern - Quasi als stiller Beobachter.

Im Nachhinein natürlich kompletter Schwachsinn, aber wenn man sich mal festgefahren hat, dann...

Jetzt muss ich aber noch was fragen auch wenns nicht mehr so ganz zum Topic passt:

Wie funktioniert dann das kopieren auf einem Desktop, bzw. wie gibt z.B. Gnome die Statusanzeige aus beim kopieren?

Vielen Dank nochmal und beste Grüße

Sleven

redknight Team-Icon

Moderator & Supporter
Avatar von redknight

Anmeldungsdatum:
30. Oktober 2008

Beiträge: 21861

Wohnort: Lorchhausen im schönen Rheingau

track schrieb:

Gibt es eine Möglichkeit den Daten-Stream des Befehls "mv" oder "cp" mit Hilfe von "pv" anzeigen zu lassen?

Seit wann geben mv und cp denn einen Datenstrom aus ? - die bewegen doch nur Dateien bzw. deren Namen ...?

Den Teil hab ich nicht mal bedacht. Du hast Recht, imFalle von mv auf einer partitioon werden ja nur die inode-Informationen geändert, wenn ich mcih recht entsinne.

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7793

Sleven schrieb:

Wie funktioniert dann das kopieren auf einem Desktop, bzw. wie gibt z.B. Gnome die Statusanzeige aus beim kopieren?

Zum einen kann man schon herausfinden auf was und wo ein Prozess gerade zugreift (lsof -o).

Zum anderen verwenden die GUI Programme wahrscheinlich nicht cp/mv sondern schieben die Daten selbst bzw. es gibt eine passende Library dafür.

Sleven

(Themenstarter)

Anmeldungsdatum:
12. Dezember 2011

Beiträge: 10

Guten Abend,

ich wollte mich noch bei euch beiden für die schnellen und kompetenten Antworten bedanken: DANKE! 😬

Grüße

Sleven!

Antworten |