Linuchs: Mein Ubuntu-Dateimanager ändert Datum last_modified beim Kopieren ins Kopierdatum ...

... habe Daten auf verschiedenen Geräten und keine Chance, das Alter zu erkennen.

Ubuntu 22.04.5 - Dateien

Es war nicht immer so, gefühlt seit ein paar Wochen. Wenn ich neu bearbeitete Dateien am selben Tag kopiere, fällt es ja nicht auf, aber heute habe ich viele Liedtexte aufs Tablet kopiert und alle haben das heutige Datum. Sowohl im Dateimanager als auch per Javascript. Original:

Fälschung, soeben kopiert:

Laut https://wiki.ubuntuusers.de/Nautilus/ heißt „Dateien“ auch Nautilus, der mit sudo apt-get install nautilus installiert werden kann.

Meldung: nautilus ist schon die neueste Version (1:42.6-0ubuntu2).

Ich kopiere also eine HTML-Datei per Laptop vom NAS auf das per USB angeschlossene Tablet. Das Original ist z.B. vom Fr

und die Kopie von

Zusätzlich nervt die Darstellung der Zeit. Manchmal mit Wochentag, manchmal ohne, manchmal mit Kalenderdatum.

Welche Dateimanager benutzt ihr so und warum diese?

Gruß, Linuchs

  1. Habe den Dateimanager dolphin installiert.

    Der macht das genauso falsch, ändert also beim Kopieren vom NAS auf das Tablet (USB angeschlossen) last_modified auf den Zeitpunkt des Kopierens.

    Das frage ich mit Javascript so ab:

      <h1 style="color:#fff; margin:0; text-align:center">
        Web-Projekte &nbsp;
        <span id="lastModified">03.09.25</span> &nbsp;
        <a target="_blank" href="file:///home/kalle/web_index.htm">🟠</a>
        <a target="_blank" href="file:///home/kalle/MEILI/web_index.htm">🔵</a>
      </h1>
      <script>
        var lastMod = new Date(document.lastModified);
        document.getElementById("lastModified").textContent = lastMod.toLocaleDateString("de-DE") +"'";    //  5.9.2025
      </script>
    

    Was läuft da schief?

    Wenn ich vom NAS auf den persönlichen Ordner (Laptop) kopiere, bleibt last_modified erhalten.

    Vom persönlichen Ordner zum Tablet wird last_modified auch auf die Kopierzeit gestellt. Ebenso, wenn ich zum Smartphone kopiere.

    Scheint also kein Problem des Dateimananagers zu sein.

    1. <script>
          var lastMod = new Date(document.lastModified);
      

      Das ist allenfalls das Datum der Webseite nicht aber der MP3-Datei.

      Überprüfe mal mit wget -d, was der Webserver da sendet .

      URL="HTTPS://…";
      wget -d --delete-after '$URL' 2>&1 | grep -F 'Last-Modified'
      

      Kommt da nichts (z.B. bei (PHP-Skripten) wird new Date(document.lastModified) wohl den aktuellen Zeitpunkt hernehmen. Sonst den gelieferten, der dann aber der der HTML-Datei ist, welche das von Dir gezeigte Skript enthält. Ich glaube, Du wolltest aber den Erstellungszeitpunkt des MP3-Files.

      Da hilft nur, den Server schon beim Bauen der Webseite zu fragen - oder aber ein zweiter Request, den Javascript auslöst. Der wäre mir dafür zu teuer (und potentiell unsicher).

  2. Ich kopiere also eine HTML-Datei per Laptop vom NAS auf das per USB angeschlossene Tablet.

    Uff. Da spielen viele Dinge ein Rolle. Das beginnt bei den Dateisystem-Typen auf den Festplatten bis hin zu den Transport-Protokollen bzw. der Art des Mounts - falls überhaupt einer stattfindet.

    Ich habe gerade mal den Nautilus hergenommen. Bei einem Transport via ssh von ext4 zu ext4 ist

    • hier das Erstellungsdatum aktuell (das des Kopierens),
    • das des letzten (lesenden) Zugriffs ist das des letzten Schauens nach den Eigenschaften und
    • das der Modifikation bleibt wie es war - liegt dann also vor dem der Erstellung:

    Das sieht alles richtig aus.

    Möglicherweise siehst und zeigst Du also nicht das Datum der Modifikation, sondern der Erstellung der Datei. Und das ist das Datum der Erstellung auf dem Dateisystem, auf dem diese durch das Kopieren erstellt wurde.

    Falls Du PHP verwendest: Siehe auch:

    Zum Anpassen kannst Du touch()verwenden, aber so lange Dein System die creation time (Erstellungszeit) anzeigt.

    Beispiel in PHP:

    <?php
    $filename   = '/tmp/Blues Brothers.mp4';
    $dateformat = 'Y-m-d H:i:s';
    
    print ( "Zugriff:      " 
            . date( $dateformat,stat($filename )['atime'] )
            . "\n" 
          );
    
    print ( "Modifikation: " 
            . date( $dateformat, stat($filename )['mtime'])
            . "\n"
          );
    print ( "Erstellung:   "
            . date( $dateformat, stat($filename )['ctime']) 
            . "\n"
          );
    
  3. Zusätzlich nervt die Darstellung der Zeit. Manchmal mit Wochentag, manchmal ohne, manchmal mit Kalenderdatum.

    Im Nautilus das Hamburger-Menü (oben links, bei Dateien), dort “Einstellungen“ wählen, nach unten scrollen und „Detailliert“ aktivieren:

    Ob mehr geht, wenn man via dconf-editor oder Dateien in ~/.config/nautilus/ tiefer in Gnome bzw. Nautilus eingreift weiß ich nicht. Gnome ist dazu bestimmt, einfach zu sein also wenig Support zu verursachen, weshalb es kaum noch konfigurierbar ist.

    Welche Dateimanager benutzt ihr so und warum diese?

    Thunar (aus XFCE 4) tut hier was er soll.

    1. Deshalb lautet mein Eintrag in $HOME/.bashrc:

      alias ls='ls --color=none --time-style="+%Y-%m-%d %H:%M"'
      

      Danach gibt es (mit ls -l) immer etwas wie "2026-05-31 12:59" als Zeitangabe.

  4. Hallo Linuchs, dein zweiter Beitrag enthält eigentlich schon die Lösung: Es passiert nur, wenn das Ziel Tablet oder Smartphone ist. Die hängen per USB in aller Regel nicht als normales Laufwerk dran, sondern über MTP. Und bei MTP übernehmen viele Geräte und Treiber die Änderungszeit der Datei nicht, die Kopie bekommt einfach den Zeitpunkt des Kopierens. Dafür kann weder Nautilus noch Dolphin etwas. Weil du das Datum per document.lastModified anzeigst, würde ich mich gar nicht auf das Dateisystem verlassen: Schreib das Stand-Datum beim Erzeugen der Seite direkt ins HTML, etwa in ein <time datetime="2025-09-03">-Element. Dann stimmt es auf jedem Gerät, egal wie die Datei dorthin kommt. Gruß Timo