Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Mtime einer Datei in Variable

Frage Entwicklung Batch & Shell

Mitglied: Erik72

Erik72 (Level 1) - Jetzt verbinden

14.04.2014 um 11:20 Uhr, 1176 Aufrufe, 9 Kommentare

Hallo,
ich möchte in einer unix-sh einen Dateinamen in einen Dateinamen.Erstellungsdatum(mtime) umbenennen.
Frage: Wie könnte ich das Erstellungsdatum einer Datei in eine Variable packen? Diese könnte ich dann auslesen und im mv-Befehl einfügen.
Danke für Eure Lösungsansätze...schöne Grüße
Erik
Mitglied: colinardo
14.04.2014, aktualisiert um 12:18 Uhr
Hi Erik,
Frage: Wie könnte ich das Erstellungsdatum einer Datei in eine Variable packen?
z.B. so
01.
file="deineDatei.txt" 
02.
filename=${file%.*} 
03.
extension=${file##*.} 
04.
datum=$(date -r "$file" +%F_%T) 
05.
mv "$file" "$filename.$datum.$extension"
Grüße Uwe
Bitte warten ..
Mitglied: Erik72
14.04.2014 um 13:30 Uhr
Hallo Uwe,
lieben Dank für Deine Mühe. Meine sh kennt die option -r bei date leider nicht.

date: illegal option -- r
Usage: date [-u] [+format]
date [-u] [mmddhhmm[[cc]yy]]
date [-a [-]sss.fff]


Hätte noch jemand eine Idee, das Erstellungsdatum in eine Variable zu packen?

Grüße
Erik
Bitte warten ..
Mitglied: colinardo
14.04.2014, aktualisiert um 13:37 Uhr
dann probiers halt mal damit
datum=$(stat -c %y test.txt | cut -d '.' -f1)
Bitte warten ..
Mitglied: Erik72
14.04.2014 um 13:41 Uhr
hmmmm, er will nicht....

$ ./move_in_mtime
./move_in_mtime[6]: stat: not found
Bitte warten ..
Mitglied: colinardo
14.04.2014, aktualisiert um 13:57 Uhr
auf was für einem System arbeitest du denn überhaupt ? scheint doch ziemlich abgespeckt zu sein....

dann habe ich hier noch was für dich:
find /pfad/zur/datei -name deineDatei.txt -printf '%TY-%Tm-%Td_%TX'
Bitte warten ..
Mitglied: Erik72
14.04.2014 um 14:10 Uhr
Das ist ein HP-UX B.11.31 und das Skript muss unter ksh laufen

Schade, deine letzte Idee will auch nicht.....

find: bad option -printf
Bitte warten ..
Mitglied: colinardo
14.04.2014, aktualisiert um 14:28 Uhr
Die Systeme kenne ich nicht, dann versuch es über die Ausgabe von ls. Jetzt haben wir langsam alles durch...
 ls -l deineDatei.txt | awk '{print $6"_"$7}'
Bitte warten ..
Mitglied: Erik72
14.04.2014 um 15:29 Uhr
Funktioniert! Danke! Es gibt nur ein kleines Problemchen. Dateien älter als ein Jahr werden mittels ls -l ohne Uhrzeit gelistet und somit beim move überschrieben.

430 Mar 16 2007 /pfad1/testfile
763 Mar 16 2007 /pfad2/testfile
834 Mar 16 2007 /pfad3/testfile

sobald ich diese files in /ziel/testfile.zeitstempel verschiebe, ist nur die letzte datei vorhanden, da Zeitstempel gleich.


bei files aus diesem jahr funktioniert es gut:

270 Apr 14 14:59 /pfad1/testfile
233 Apr 14 15:04 /pfad1/testfile
210 Apr 14 15:15 /pfad1/testfile
Bitte warten ..
Mitglied: colinardo
14.04.2014, aktualisiert um 16:29 Uhr
OK in dem Fall nehme mal das:
ls -l --time-style='+%Y-%m-%d_%H:%M:%S' deineDatei.txt | awk '{print $6}'
hoffentlich kennt deine Kiste diesen Parameter wenigstens ...sonst nehm ne 9mm und blas ihn in die ewigen Jagdgründe
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst In einer Batch variable die Datei extension ermitteln ? (4)

Frage von Kriegstreiber zum Thema Batch & Shell ...

PHP
gelöst TXT Datei auslesen und bestimmte Zeilen in Variable setzen (11)

Frage von 126594 zum Thema PHP ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von 126594 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Batch & Shell

Batch - ein paar Basics die man kennen sollte

Tipp von Pedant zum Thema Batch & Shell ...

Microsoft

Restrictor: Profi-Schutz für jedes Window

(5)

Tipp von AlFalcone zum Thema Microsoft ...

Batch & Shell

Batch zum Zurücksetzen eines lokalen Profils

Tipp von Mr.Error zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft Office
Saubere HTML aus Word-Dokument (16)

Frage von peterpa zum Thema Microsoft Office ...

Router & Routing
ASUS RT-N18U mit VPN Client hinter Fritzbox - Portforwarding (15)

Frage von marshall75000 zum Thema Router & Routing ...

Hosting & Housing
gelöst Webserver bei WIX, aber DNS Server wo anders (9)

Frage von laster zum Thema Hosting & Housing ...