On Mon, 01 Sep 2003 at 00:15 (+0200), Michael Fischer wrote:
Hallo, für ein Preserve-Filetime Script müßte ich dann dem ls -l -xxx das Datum inkl. Zeit entlocken und in einem String in korrektem Format speichern, so daß ich es an "touch -t $Zeitstempel <Datei>" übergeben kann. Die ganzen Formate (iso, long-iso, locale, ...) sind leider saumäßig unterschiedlichzum touch Zeitformat. Wie extrahiere ich außerdem Datum und Zeit aus der ls Ausgabe?
Wozu ls? Das folgende in einer Zeile: touch -t "`date --date \"\`stat dirty_fn | grep Modify | cut -f2- -d\" \"\`\" +%y%m%d%H%M.%S`" jan Von innen nach außen: - stat ermittelt Datei-Infos (man stat) der Datei "dirty_fn" - grep selektiert das Datum der letzten Modifikation - cut schneidet ab Feld 2 ab (also das Datum ohne führendes "Modify") - der daraus ermittelte String wird an date übergeben (man date), der den zur -t-Option von touch passenden Timstamp erzeugt - touch legt die Datei "jan" mit dem entspr. Zeitstempel an Etwas umständlicher, aber übersichtlicher: FTIME="`stat dirty_fn | grep Modify | cut -f2- -d\" \"`" TSTAMP=`date --date "$FTIME" +%y%m%d%H%M.%S` touch -t $TSTAMP jan Geht auch anders (per ls, ...), aber mir gefällt stat so gut ;) Jan