rsync --dry-run -v -r -t -l --delete /media/MEIN_BENUTZERNAME/'TOSHIBA EXT'/ORDNER/UNTERORDNER_1/ /media/MEIN_BENUTZERNAME/NAME_DER_FESTPLATTE/ORDNER_1/
sending incremental file list
sent 29,188,985 bytes received 436,584 bytes 9,019.81 bytes/sec
total size is 197,456,680,704 speedup is 6,665.08 (DRY RUN)
(Einmal war es mir schon gelungen, zumindest diese Datei mit dem korrekten SHA256-Wert zu kopieren (*); aber der SHA1-Wert für den ganzen Ordner stimmte nicht.)Du kannst nur für Dateien einen SHA-Wert ermitteln, nicht für Ordner.
cd /some/dir
find . -type f \( -exec sha1sum "{}" \; \) | sort -k2,2 | sha1sum
user@T-LM20:~$ cd bin
user@T-LM20:~/bin$ find . -type f \( -exec sha1sum "{}" \; \) | sort -k2,2 | sha1sum
…
Mein Rechner ist nicht sehr langsam, aber das Ergebnis lässt seit gut 15 min auf sich warten. user@T-LM20:~/bin$ ls
Block-Bluetooth.sh MTPlayer touchscreen-off
chromium-latest-linux-master start-conky.sh TVPlayer3
(3.747 Objekte, mit insgesamt 725,6 MB) Also ich verstehe den Code zwar nicht, habe aber trotzdem Zweifel, dass er funktioniert:Scheint so ;D
Ist zwar nicht gerade wenig, aber 15 min sollten doch für eine sha1 reichen?
Im Quellverzeichnis könnte z. B. noch eine versteckte Datei sein, die nicht mitkopiert wirdKann m.E. zu 99,9% ausgeschlossen werden, da rsync ohne Fehlermeldung durchläuft. Die Inhalte der Verzeichnisse werden somit, geprüft auf Änderungsdatum und Größe der einzelnen Dateien, völlig identisch sein.
Ist zwar nicht gerade wenig, aber 15 min sollten doch für eine sha1 reichen?
Im Quellverzeichnis könnte z. B. noch eine versteckte Datei sein, die nicht mitkopiert wird
Probier einfach mal den Befehl ohne die Pipe's aus und vergleiche
(nimm ein Verzeichnis mit wenig Dateien).
Was sind denn Pipes überhaupt?Du zweifelst die Ausgabe von rsync an, hast aber keine Ahnung von dem, was der Befehl, den du von irgendwo aus dem Internet heraus kopiert hast, genau bewirkt und wo bei diesem eventuell Fallstricke zu erwarten wären.
was der Befehl, den du von irgendwo aus dem Internet heraus kopiert hast
https://unix.stackexchange.com/questions/106275/du-gives-two-different-results-for-the-same-file (https://unix.stackexchange.com/questions/106275/du-gives-two-different-results-for-the-same-file)
Den habe ich daher, wo du mich hingeschickt hattestAsche auf mein Haupt...
In erster Linie ging es mir dort um die Erklärung, warum unter bestimmten Umständen bei der Abfrage mit "du" unterschiedliche Werte ausgegeben werden können.
Du zweifelst die Ausgabe von rsync an,
Rückfragen:Im Quellverzeichnis könnte z. B. noch eine versteckte Datei sein, die nicht mitkopiert wird
Falls die da sind, dann werde sie da ja auch einen Sinn haben (und folglich würde ich sie mitkopieren wollen), oder nicht?ZitatProbier einfach mal den Befehl ohne die Pipe's aus und vergleiche
Was sind denn Pipes überhaupt?Zitat(nimm ein Verzeichnis mit wenig Dateien).
Dass der Code im Prinzip funktioniert, hatte ich ja gestern (mit übereinstimmenden Werten) schon für mein Verzeichnis 1 festgestellt; auch für Verzeichnis 2 wurden mir gestern Werte ausgegeben - nur halte nicht übereinstimmende.
$ find . -type f | wc -l
prüfen. Das zählt die Dateien und durch weglassen des Hashes geht es auch schnell.$ find . -type f
oder sortiert
$ find . -type f | sort -k2,2
alle gefundenen Dateien ansehen/vergleichen. Ist allerdings mühsam, würde ich jeweils in eine Datei leiten und dann per Diff angucken.$ cd Quelle
$ find . -type f | sort -k2,2 > /home/$USER/Quelle.txt
$ cd Ziel
$ find . -type f | sort -k2,2 > /home/$USER/Ziel.txt
$ cd ~
$ vimdiff Quelle.txt Ziel.txt
Wenn die Anzahl stimmt, das ganze mit Hash nochmal. Im Diff sieht man dann ganz genau welche Dateien nicht übereinstimmen.find . -type f | wc -l
find . -type f \( -exec sha1sum "{}" \; \) | sort -k2,2 | sha1sum
find . -type f | wc -l
find . -type f \( -exec sha1sum "{}" \; \) | sort -k2,2 | sha1sum
1. Ich hatte gestern Abend die (größte) .zip-Datei in meinem Verzeichnis 2 ein weiteres Mal gelöscht und dann erneut grsycnt.
2. Zumindest der SHA256-Wert für diese Datei stimmt nun auf Quell- und Ziel-Laufwerk überein.
sha256sum -b DATEINAME
find . -type f \( -exec sha1sum "{}" \; \) | sort -k2,2 | sha1sum
$ cd Quelle
$ find . -type f \( -exec sha1sum "{}" \; \) | sort -k2,2 > /home/$USER/Quelle.txt
$ cd Ziel
$ find . -type f \( -exec sha1sum "{}" \; \) | sort -k2,2 > /home/$USER/Ziel.txt
$ cd ~
$ vimdiff Quelle.txt Ziel.txt
das probieren.sudo apt-get install vim
Was muss ich denn im Terminal eingeben, um die Bilddatei direkt aus dem Terminal z.B. mit Pix zu öffnenAm besten mit "cd" ins Verzeichnis wechseln und "pix Dateiname" eingeben. Wenn du an den Schluß noch ein "&" anhängst wird der Prozeß in den Hintergrund geschickt und das Terminal ist gleich wieder verfügbar.
Aber vor dem & ein Leerzeichen!Muss das wirklich sein? (Ernst gemeinte Frage.)
pix /media/MEIN_BENUTZERNAME/TOSHIBA EXT/VERZEICHNIS/VERZEICHNIS/VERZEICHNIS/VERZEICHNIS/VERZEICHNIS/NAME.jpg &
[1] 2907411
pix /media/MEIN_BENUTZERNAME/FESTPLATTEN-NAME/VERZEICHNIS/VERZEICHNIS/VERZEICHNIS/VERZEICHNIS/NAME.jpg &
[2] 2907418
[1] Fertig pix /media/MEIN_BENUTZERNAME/FESTPLATTEN-NAME/VERZEICHNIS/VERZEICHNIS/VERZEICHNIS/VERZEICHNIS/NAME.jpg
Muss das wirklich sein?Ich denke schon.
pix /media/MEIN_BENUTZERNAME/TOSHIBA EXT/VERZEICHNIS/VERZEICHNIS/VERZEICHNIS/VERZEICHNIS/VERZEICHNIS/NAME.jpg &Kann nicht funktionieren, aber das hatten wir ja schon mal: https://www.linuxmintusers.de/index.php?topic=64452.msg845386#msg845386 (https://www.linuxmintusers.de/index.php?topic=64452.msg845386#msg845386)
Kann nicht funktionieren, aber das hatten wir ja schon mal:
Dauert also lange.
Kann kein Python, aber sollte wohl heißen:Code: [Auswählen]File "/home/MEIN_BENUTERNAME/Downloads/filecopy.py", line 65
print(f'Quellverzeichnis ({source}) wird bearbeitet')
^
SyntaxError: invalid syntax
printf('Quellverzeichnis ({source}) wird bearbeitet')
also ein einfacher "Zahlendreher"
print(f'{len(files)} Dateien gefunden, berechne Hashes')
File "/home/MEIN_BENUTZERNAME/Downloads/filecopy.py", line 70
print('.', end='', flush=True)
^
SyntaxError: invalid syntax
Kann kein Python, aber sollte wohl heißen:printf gibt es in Shell-Skripts, aber python kennt es nicht ootb – auch nicht in den verwendeten Modulen.Code: [Auswählen]printf('Quellverzeichnis ({source}) wird bearbeitet')
Das habe ich in der Datei geändert;Bitte rückgängig machen.
Würde fast vermuten, du versuchst das mit Python 2 auszuführen.
sudo apt-get install python
Hinweis: »python-is-python2« wird an Stelle von »python« gewählt.
python-is-python2 (2.7.17-4) wird eingerichtet
$ python3 filecopy.py -h