Umbenennen aller Dateien in einem Ordner mit einem bestimmten Erweiterungsnamen (rekursiver Ansatz)

557
King David

wir möchten alle Dateien unter / home / DB_home umbenennen (rekursiv)

Daher wird jede Datei unter DB_home mit der Erweiterung .txt umbenannt

Beispiel

vor dem Wechsel

/home/DB_home/hg/ir/qemu-ga /home/DB_home/td/glusterfs /home/DB_home/yr/ew/sd/cv/ntpstats /home/DB_home/yr/ew/sd/cv/proc.csv /home/DB_home/td/GF.conf /home/DB_home/td/tool.bin 

Beispiel (nach dem Umbenennen)

/home/DB_home/hg/ir/qemu-ga.txt /home/DB_home/td/glusterfs.txt /home/DB_home/yr/ew/sd/cv/ntpstats.txt /home/DB_home/yr/ew/sd/cv/proc.csv.txt /home/DB_home/td/GF.conf.txt /home/DB_home/td/tool.bin.txt . . . 

wie geht das mit find und mv?

1

2 Antworten auf die Frage

2
Arkadiusz Drabczyk

So wie das:

find . -type f -exec mv {} {}.txt \; 
1
xenoid
find . type f -exec mv {} {}.txt \; 

... weil nichts sagt, dass Sie {}nur einmal im Befehl verwenden dürfen, zumindest solange Sie das ;und nicht das Kommando verwenden +.