• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Gelöst Timestamps beim Kopieren der Dateien beibehalten

ich muss Dateien vom einen Smartphone auf das andere übertragen, aber es müssen die Zeitstempel beibehalten werden, damit auf dem neuen Smartphone die Sortierung der Bilder und Videos nicht durchenander geraten, sondern exakt nachher so sortiert sind, wie es vorher war.

Ich schaffe es aber nicht, die Dateien so zu kopieren, dass die Dateieigenschaften exakt übernommen werden.

Hab versucht die Dateien auf zwei Weisen zu kopieren:

Code:
cp -a quelle ziel

Da -a nichts geholfen hat, hab ich Methode zwei probiert:

Code:
rsync -aHAX quelle ziel

Wenn ich dann aber die kopierte Datei/den kopierten Ordner hinterher ansehe, steht da immer erstellt um die Urzeit, als sie kopiert wurde. Das heisst der Zeitstempel der Erstellung wird beim Kopieren nicht beibehalten/übertragen.

Daher: Wie kann ich eine Datei/Ordner exakt 1:1 kopieren, damit keinerlei Daten verloren gehen, also alle Attribute zu 100% mit kopiert werden? Wie wenn die Datei quasi garnicht angerührt oder kopiert worden wäre?

Ich nutze Ultramarine Linux 41, die auf Fedora basiert.
 
cp -a sollte eigentlich genau das machen - sofern die beteiligten Dateisysteme das unterstützen.

Was ist denn bei Dir Quelle und Ziel? "Kopieren vom Smartphone" klingt da ein wenig komisch, da ist normalerweise nichts natives dabei...

Da würde ich eher die den Smartphone eigene Sync-Funktion nutzen...
 
cp -a sollte eigentlich genau das machen - sofern die beteiligten Dateisysteme das unterstützen. Was ist denn bei Dir Quelle und Ziel? "Kopieren vom Smartphone" klingt da ein wenig komisch, da ist normalerweise nichts natives dabei... Da würde ich eher die den Smartphone eigene Sync-Funktion nutzen...

Ich hab das jetzt noch garnicht in der Weise getestet, dass ich Daten vom Smartphone kopiert habe, sondern hab erst mal testweise normale belanglose Dateien auf meinem OS irgendwo hinkopiert und wollte dann sehen, ob die Attribute 1:1 übernommen werden.

Und dann kams eben wie gesagt dazu, dass trotzdem immer dasteht, Erstellungsdatum der neuen Datei=Zeitpunkt wann es kopiert wurde.

Smartphones sind nicht so mein Ding. Was hab ich denn für Sync-Möglichkeiten auf Android? Die Sache ist eben die, dass meine Mutter elend viele Bilder und auch sehr viele Videos auf ihrem Smartphone hat. Also mit soetwas wie Bluebooth wäre das zu langsam. Vielleicht kannst Du mir hier auch ein paar Tipps geben.

EDITTEXT: Ich werds gleich mal mit meinem eigenen Smartphone versuchen, ob die beiden Terminalbefehle viell. da doch greifen. ich schreibe es dann rein.
 
Code:
marce@frodo:~/tmp$ touch -d "01/01/2000" test
marce@frodo:~/tmp$ cp -a test test2
marce@frodo:~/tmp$ cp test test3
marce@frodo:~/tmp$ ls -la
insgesamt 8
drwxr-xr-x   2 marce marce 4096 24. Mär 22:59 .
drwx------. 48 marce marce 4096 24. Mär 22:17 ..
-rw-r--r--   1 marce marce    0  1. Jan 2000  test
-rw-r--r--   1 marce marce    0  1. Jan 2000  test2
-rw-r--r--   1 marce marce    0 24. Mär 22:59 test3
... also hier tut's.
 
Ich hab das was Du gemacht hast, mal nachgemacht.
Tatsächlich mit dem Befehl 'ls -la' stimmt dann der Zeitstempel der neuen kopierten Datei überein mit der Orginaldatei vom Ursprungsort.
ABER: Wenn ich die gleiche Datei, also die neu kopierte Zieldatei in Nautilus ansehe und mir dort die Eigenschaften ansehe, sagt er wieder Erstellungsdatum/Erstellungszeit sei der Zeitpunkt, an dem die Datei neu kopiert wurde. Warum zeigt Nautilus etwas anderes an als der Befehl ls -la im Terminal?

Und was sagt eigentlich die Zeit die dabei steht bei einer Datei beim Befehl ls -la? Könnte sich das nicht auch nur auf die Zeit beziehen, wann die Datei mal geändert wurde? Ist das tatsächlich definitiv das Erstellungsdatum?!
 

susejunky

Moderator
Teammitglied
ich muss Dateien vom einen Smartphone auf das andere übertragen, aber es müssen die Zeitstempel beibehalten werden,
Welche Datum/Zeitangaben (Erstellung, Änderung, ...) zu einer Datei abgespeichert werden, hängt vom Dateisystem (Quelle und Ziel) und ggf. auch von der Art und Weise wie die Daten übertragen werden ab.

Damit ergeben sich folgende Fragen:

Welche Betriebssysteme verwenden die beiden (Quelle/Ziel) Smartphones? (Ich selbst verwende ausschließlich Geräte mit Android und kann daher zu anderen Geräten nichts sagen.)

Sind die Daten im Speicher (ext4) oder auf der SD-Karte (FAT) des Android-Geräts abgelegt?

Wie überträgst Du die Dateien von dem Quell-Android-Gerät auf Deinen PC
  • USB-Kabel und adb pull bzw. adb push?
  • USB-Kabel und MTP?
  • LAN und kde-connect?
  • LAN und SAMBA?
  • SD-Karte und Kartenleser am PC
  • ...
Welches Dateisystem verwendet Dein PC?

Wie überträgst Du die Dateien von Deinem PC auf das Ziel-Android-Gerät?
 
Warum zeigt Nautilus etwas anderes an als der Befehl ls -la im Terminal?
Das wirst Du die Entwickler fragen müssen. Es gibt folgende Zeitstempel:
Code:
Access: The last time at which the file was accessed.
Modify: The last time at which file was modified.
Change: The last time the at which file’s attribute or content was changed.
Birth:  The time at which the file was created.
Aber nicht jedes Dateisystem stellt alle vier zur Verfügung. Die Realität erfährst Du mit dem Befehl:
Code:
stat dateiname

Welchen Zeitstempel ein bestimtes Programm beim Sortieren verwendet, wirst Du wohl selbst herausfinden müssen.
 
Hallo @all
Hallo @susejunky

Beide Geräte nutzen Android.

Die Daten waren/sind auf dem Ursprungshandy nur auf dem internen Speicher abgelegt, nicht auf einer SD Karte.

Ich hab ein normales USB Kabel verwendet beim Kopieren.

Der Stand ist jetzt der: Ich hab alle Dateien vom Orginal-Smartphone auf meinem Ultramarine Linux auf SSD kopiert mit cp -a und hat geklappt.

Wenn ich aber jetzt die Dateien von der SSD auf das Zielsmartphone kopieren möchte, egal ob mit cp -a oder mit rsync -aHAX, sagt das Terminal "Operation nicht erlaubt" und es werden dann die Dateien zwar kopiert auf das Zielsmartphone, aber der Zeitstempel geht verloren. So ein Mist! :-(

Könnt ihr das noch irgendwie fixen? :)

EDITTEXT: Es wird nicht ausgegeben, es sei nicht erlaubt, sondern es heisst, die Operation werde nicht unterstützt. Andere Infos gibt das Terminal in dem Moment nicht aus.
 
Zuletzt bearbeitet:
Ergänzung: Das Zielhandy ist das Xiaomi Redmi Note 13, Android Version 15, OS Version Xiaomi HyperOS 2.0.2.0 VNHEUXM
 

susejunky

Moderator
Teammitglied
Wenn ich aber jetzt die Dateien von der SSD auf das Zielsmartphone kopieren möchte, egal ob mit cp -a oder mit rsync -aHAX, sagt das Terminal "Operation nicht erlaubt" und es werden dann die Dateien zwar kopiert auf das Zielsmartphone, aber der Zeitstempel geht verloren.
Wenn es primär um die Sortierung der Dateien geht, würde ich mich an Deiner Stelle nicht auf die Datumsangaben, die den Dateien zugeordnet sind, verlassen. Wie Beitrag #7 zeigt, sind jeder Datei mehrere Datumsangaben zugeordnet. Nicht jedes Dateisystem stellt alle/die selben Datumsangaben bereit, jedes Betriebssystem verwendet ggf. andere Zeitangaben (UTC oder Lokalzeit), Werkzeuge verändern ggf, Datumsangaben, usw. ...

Daher wäre meine Empfehlung die Dateien so umzubenennen, dass sie anhand ihrer Dateinamen dateisystem- und betriebssystemunabhängig sortiert werden können; z.B benenne ich alle Bilder, die ich von meiner Digitalkamera importiere, so um, dass der Erstellungszeitpunkt im Dateinamen enthalten ist Jahr-Monat-Tag_Stunde-Minute-Sekunde.jpg. Jetzt, da Du alle Dateien auf Deinem PC hast, kannst Du das mit Werkzeugen wie krename, exiftool, usw. einfach durchführen.

Ansonsten kannst Du noch versuchen, ob Du mit adb push die Dateien unverändert von Deinem PC auf das Ziel-Smartphone übertragen kannst.

Oder Du aktivierst auf Deinem PC einen SAMBA-Server und kopierst die Dateien mit Hilfe eines SMB-fähigen Android-Dateimanager über LAN von Deinem PC auf das Ziel-Smartphone. kdeconnect wäre ggf. auch ein Versuch wert, aber das habe ich noch nie genutzt.
 
Ansonsten kannst Du noch versuchen, ob Du mit adb push die Dateien unverändert von Deinem PC auf das Ziel-Smartphone übertragen kannst.
Erst einmal danke für Deine / Eure Antworten! :)
Die Sache ist eben die, dass die Person für die das Handy bestimmt ist, jetzt es eben so möchte, dass die Bilder und Videos auf dem neuen Handy exakt so erscheinen in der Galerie wie auf dem alten. (78- jährige Person)

Mit einem Server bzw. derartige Konfigurationen und Operationen komme ich nicht klar.

Könntest Du mir noch etwas bitte schreiben über den Befehl adb push? Wie muss ich genau diesen Befehl anwenden? Wäre super, dank! :)
 
Solltest Du nicht zuerst herausfinden, mit welchem Zeitstempel das am smartphone verwendete Programm arbeitet? Access wird es wohl nicht sein, bei Modify hast Du Chancen, aber wenn Change (wie es laut Beitrag 5 bei Nautilus der Fall ist) oder Birth verwendet werden, kannst Du Deine Bemühungen einstellen.
 
Du hast Recht, aber ich werde jetzt die Dateien normal kopieren, weil immer neue Probleme auftreten.

Ich hab Android-Tools installiert und versucht mit adb push die Dateien zu kopieren. Dann sagt er, es bestehe ein read-only-Filesystem.

Das ist alles derart frustrierend und ich habe dafür gerade einfach auch nicht die Nerven. Ich werde leider die Dateien normal kopieren müssen.

Trotzdem danke Dir und Euch für die Hilfe! :)
 

susejunky

Moderator
Teammitglied
Ich hab Android-Tools installiert und versucht mit adb push die Dateien zu kopieren. Dann sagt er, es bestehe ein read-only-Filesystem.
Anhand einer solchen "Fehlerbeschreibung" kann man Dir nur schwer weiterhelfen. Es wäre besser gewesen, Du hättest den Verlauf Deines Tuns aus der Konsole in Deinen Beitrag kopiert. So kann ich Dir nur ein paar allgemeine Hinweise geben:
  • Eventuell ist es hilfreich adb (auf dem PC) als "root" auszuführen.
  • Um per adb auf das Smartphone zugreifen zu können, muss auf dem Smartphone "USB-Debugging" aktiviert sein.
  • Wenn das Ziel-Smartphone nicht "gerootet" ist, kann man in aller Regel nur den Bereich unter /storage/emulated/0 beschreiben.
 
Oben