ubuntuusers.de

Datei in einem Verzeichnis Verzeichnisnamen geben

Status: Gelöst | Ubuntu-Version: Ubuntu 11.10 (Oneiric Ocelot)
Antworten |

DickGain

Anmeldungsdatum:
28. Juni 2010

Beiträge: Zähle...

Hallo,

ich habe hier in einem Ordner einen Haufen Ordner, die jeweils genau eine Datei beinhalten; die Dateitypen und -endungen sind verschieden. Nun möchte ich die Dateien umbenennen, und zwar so, dass sie den Ordnernamen bekommen, dabei aber ihre jeweilige Endung behalten.

Bspw.

1
2
3
4
5
...
a/fu.bar
as - df/42.pdf
q.wertz/neg.mp3
...

soll werden zu

1
2
3
4
5
...
a/a.bar
as - df/asdf.pdf
q.wertz/qwertz.mp3
...

Idealerweise würden die Dateien noch eine Verzeichnisebene nach oben verschoben, aber die Umbenennung ist die Hauptsache.

Grüße

Antiqua Team-Icon

Avatar von Antiqua

Anmeldungsdatum:
30. Dezember 2008

Beiträge: 4534

dirty und nur schnell mal getestet:

anti@qua:~/ubuntu/mvup-test/ordner$ tree
.
├── a
│   └── fu.bar
├── asdf
│   └── 42.pdf
└── q.wertz
    └── neg.mp3

3 directories, 3 files
anti@qua:~/ubuntu/mvup-test/ordner$ for i in */*; do o=${i%%/*}; e=${i##*.}; mv "$i" "$o"."$e"; rm -rf "$o"; done
anti@qua:~/ubuntu/mvup-test/ordner$ tree
.
├── a.bar
├── asdf.pdf
└── q.wertz.mp3

0 directories, 3 files

PS: bitte ausgiebig selber auf einer Kopie deiner Daten testen. Ich übernehme keinerlei Verantwortung für verlorene Daten. 😉

PSPS:sollte der Ordner nicht gelöscht werden, einfach den rm -rf -Teil weglassen.

DickGain

(Themenstarter)

Anmeldungsdatum:
28. Juni 2010

Beiträge: 57

Das hat genau das getan, was ich wollte. Vielen Dank!

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Dringende Empfehlung: immer korrekt "quoten":

anti@qua:~/ubuntu/mvup-test/ordner$ for i in */*; do o="${i%%/*}"; e="${i##*.}"; mv "$i" "$o"."$e"; rm -rf "$o"; done

LG,

track

Antworten |