ubuntuusers.de

Dateinamen kuerzen

Status: Ungelöst | Ubuntu-Version: Ubuntu 7.10 (Gutsy Gibbon)
Antworten |

MasDom

Anmeldungsdatum:
25. September 2007

Beiträge: 73

Hi,

ich habe ein Problem. Ich habe einen Ordner mit sehr vielen PDF Dateien, die meistens einen sehr langen Namen haben. Ich wuerde den Namen gerne auf sagen wir mal 100 Zeichen kuerzen und dann am Ende noch .pdf stehen haben. Wie mache ich das?

Gruss

MasDom

Lunar

Anmeldungsdatum:
17. März 2006

Beiträge: 5792

MasDom hat geschrieben:

Ich habe einen Ordner mit sehr vielen PDF Dateien, die meistens einen sehr langen Namen haben. Ich wuerde den Namen gerne auf sagen wir mal 100 Zeichen kuerzen und dann am Ende noch .pdf stehen haben. Wie mache ich das?

Das kommt darauf an, was dann noch dastehen soll...

Da du darüber keine Informationen gegeben hast, kann man dir erstmal nur ein generelles Tool für Stapelverarbeitung von Dateinamen nennen: krename

Vegeta

Avatar von Vegeta

Anmeldungsdatum:
29. April 2006

Beiträge: 7943

audax

Avatar von audax

Anmeldungsdatum:
15. September 2006

Beiträge: 1253

rename -n 's/(.{100}).*(\.pdf)/$1$2/xms' *.pdf 

Wenn das alles richtig so aussieht, nimm einfach das '-n' weg und er tuts tatsächlich.

€dit:
Der schneidet stumpf nach 100 Zeichen ab und hängt dann PDF drann...

MasDom

(Themenstarter)

Anmeldungsdatum:
25. September 2007

Beiträge: 73

Habs ausprobiert. KLASSE!!! Das ist genau das, was ich will. Wie schaffe ich es jetzt, dass es auch noch die Dateien in den Unterverzeichnisse umbenennt?

MasDom

audax

Avatar von audax

Anmeldungsdatum:
15. September 2006

Beiträge: 1253

ersetze das *.pdf durch ein **/*.pdf

€dit:
Wobei..das scheint die Bash noch immer nicht ordentlich zu können...
Versuchs in der Zsh damit.

Lunar

Anmeldungsdatum:
17. März 2006

Beiträge: 5792

audax hat geschrieben:

ersetze das *.pdf durch ein **/*.pdf
Wobei..das scheint die Bash noch immer nicht ordentlich zu können...

Wozu auch? find existiert.

audax hat geschrieben:

Versuchs in der Zsh damit.

Es macht ja auch richtig Sinn, extra eine Shell zu installieren, nur um eine einzige kleine Aufgabe zu lösen. Vor allem, weil ``find`` eben existiert: 🙄

find -name '*.pdf' -exec rename -n 's/(.{100}).*(\.pdf)/$1$2/xms' {} +

audax

Avatar von audax

Anmeldungsdatum:
15. September 2006

Beiträge: 1253

Ich hatte es mit find probiert, aber es hat sich mir widersetzt. Keine Ahnung, wo mein Fehler lag...

Jedenfalls, auch bei deiner version:
rename -n gibt keinerlei Ausgabe, was aber eigentlich der Fall sein sollte.

black_devil8975

Anmeldungsdatum:
20. Juli 2017

Beiträge: Zähle...

Der Thread ist zwar schon älter, aber gibt es eine Lösung das auf dem ganzen System zu realisieren? Wichtig dabei wäre eben für alle Dateitypen.

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13205

black_devil8975 schrieb:

Der Thread ist zwar schon älter, aber gibt es eine Lösung das auf dem ganzen System zu realisieren? Wichtig dabei wäre eben für alle Dateitypen.

Meinst Du im ganzen Dateisystem? Das ist aber sehr riskant!

Ungetestet!!!

1
sudo find / -type f -exec rename -n 's/\A(.{100}).*(\.[^.]+)\z/$1$2/s' {} +

Das -n gibt erst mal nur die Änderungen aus.

black_devil8975

Anmeldungsdatum:
20. Juli 2017

Beiträge: 2

Ich werde es nur auf den eingehängten Festplatten ausführen und die Systempartition in Ruhe lassen. Erstmal Danke für die Antwort, werde das heute Nacht testen.

Edit: Tut genau das was es soll! Danke!

Antworten |