Dateien/Festplatte
Dateien durchnumerieren
Manchmal möchte man Dateien durchnumerieren, meist im Zusammenhang mit Bildern. Ich habe drei Programme dafür gefunden: Double Commander, gnome commander und krename.
Der Double Commander ist für Linux und Windows verfügbar und kann passabel umbenennen. Dazu die Dateien markieren und über Strg+m den Umbenennungsassistenten aufrufen. Oft genutzte Muster sollte man sich abspeichern, das ist im Umbenennen-Dialog möglich.
Der gnome commander ist gleich mächtig, den gibt es aber nur für Linux.
Unter KDE ist eventuell krename die bessere Alternative, das Programm bedient sich gut und ist selbsterklärend.
Dateinamen ändern, kürzen, umsortieren
Auch hier empfehle ich den Double Commander, mit dem Umbenennen einfach (und sicher) ist. Er bietet auch an, EXIF-Informationen oder andere Dateiinformationen zum Umbenennen zu verwenden. Oft ist die Nutzung des Dateidatums aber genauso korrekt und etwas einfacher. Ein bewährtes Schema zur Benennung von Fotos:
jjjj-mm-tt_###_beschreibung.jpg
Im Double Commander wäre der Dateiname dann
[YYYY]-[MM]-[DD]_[C]_beschreibung
Und für die Dateiendung bleibt man bei
[E]
und wählt lowercase für die Umwandlung in Kleinbuchstaben aus.
Wer die Kommandozeile bevorzugt, kann auch das Werkzeug rename benutzen.
Wichtigster Schalter ist --no-act
, denn so zeigt das Programm an, was es tut, bevor es tatsächlich umbenennt.
Alle folgenden Beispiele sind mit --no-act
angegeben, damit man sie kopieren und einsetzen kann, ohne etwas kaputt zu machen.
Der Schalter --verbose
gibt aus, welche Dateien wie umbenannt wurden.
rename arbeitet mit regulären Ausdrücken, ist also sehr mächtig, aber etwas komplizierter zu bedienen, wenn man reguläre Ausdrücke nicht kennt.
Beispiel, Problemdateien seien:
001_0010_20060810_Test_2134.JPG 002_2610_20060810_Zweite_6534.JPG
Dateiendung verbessern:
$> rename --no-act --verbose 's/JPG/jpg/' *.JPG 001_0010_20060810_Test_2134.JPG renamed as 001_0010_20060810_Test_2134.jpg 002_2610_20060810_Zweite_6534.JPG renamed as 002_2610_20060810_Zweite_6534.jpg
Zweite Nummer entfernen (4 Zahlen zwischen zwei "_"):
$> rename --no-act --verbose 's/_[0-9]{4}_/_/' *.jpg 001_0010_20060810_Test_2134.jpg renamed as 001_20060810_Test_2134.jpg 002_2610_20060810_Zweite_6534.jpg renamed as 002_20060810_Zweite_6534.jpg
Letzte Nummer entfernen (4 Zahlen zwischen "_" und "."):
$> rename --no-act --verbose 's/_[0-9]{4}[\.]/./' *.jpg 001_20060810_Test_2134.jpg renamed as 001_20060810_Test.jpg 002_20060810_Zweite_6534.jpg renamed as 002_20060810_Zweite.jpg
Datum korrekt formatieren (8 Zahlen mit "-" trennen und als T-M-J schreiben):
$> rename --no-act --verbose 's/([0-9]{4})([0-9]{2})([0-9]{2})/$3-$2-$1/' *.jpg 001_20060810_Test.jpg renamed as 001_10-08-2006_Test.jpg 002_20060810_Zweite.jpg renamed as 002_10-08-2006_Zweite.jpg
Datum (unformatiert) nach hinten schieben (8 Zahlen, die mit "_" beginnen nach hinten (vor ".jpg") schieben):
$> rename --no-act --verbose 's/(_[0-9]{8})(.*)\.jpg$/$2$1\.jpg/' *.jpg 001_20060810_Test.jpg renamed as 001_Test_20060810.jpg 002_20060810_Zweite.jpg renamed as 002_Zweite_20060810.jpg
Datum (formatiert) nach hinten schieben (Datum in T-M-J, das mit "_" beginnt nach hinten (vor ".jpg") schieben):
$> rename --no-act --verbose 's/(_[0-9]{2}-[0-9]{2}-[0-9]{4})(.*)\.jpg$/$2$1\.jpg/' *.jpg 001_10-08-2006_Test.jpg renamed as 001_Test_10-08-2006.jpg 002_10-08-2006_Zweite.jpg renamed as 002_Zweite_10-08-2006.jpg
Festplatten unwiederruflich löschen
Geht ganz einfach, indem man die entsprechende Festplatte mit Nullen füllt (Festplatte heraussuchen und statt hda
eintragen, derzeit wohl sd*
, ändert sich ab und an):
$> dd if=/dev/zero of=/dev/hda bs=64k
Dauert aber sehr lange.
Heraussuchen geht einfach über Laufwerkverwaltung (Ubuntu), dort kann man die Festplatte auch formatieren und dabei mit Nullen überschreiben, ist etwas komfortabler.
Text in Dateien finden
mit xargs. Ein Tip von Liam Delahunty. Schalter:
-s
= Zusammenfassung zeigen, also keine Warnungen-l
= nur Dateiname, der gefunden wurde, nicht alle Fundstellen
$> find . | xargs grep 'suchtext' -sl
Variationen:
$> find . -name "*.tex" | xargs grep 'suchtext' -sl