GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux:Dateierweiterungen für mehrere Dateien entfernen

Sie können explizit einen leeren String als Argument übergeben.

rename .old '' *.old

Und mit Unterordnern find . -type d -exec rename .old '' {}/*.old \; . {} ist der Ersatz für den mit find gefundenen Eintrag , und \; beendet die Argumentliste für den nach -exec angegebenen Befehl .


rename ist etwas gefährlich, da laut seiner Handbuchseite:

rename benennt die angegebenen Dateien um, indem das erste ersetzt wird Auftreten von...

Mit Dateinamen wie c.txt.parser.y macht es gerne das Falsche .

Hier ist eine Lösung mit find und bash :

find -type f -name '*.txt' | while read f; do mv "$f" "${f%.txt}"; done

Denken Sie daran, dass dies nicht funktioniert, wenn ein Dateiname einen Zeilenumbruch enthält (selten, aber nicht unmöglich).

Wenn Sie GNU find haben, ist dies eine solidere Lösung:

find -type f -name '*.txt' -print0 | while read -d $'\0' f; do mv "$f" "${f%.txt}"; done

Ich benutze das:

find ./ -name "*.old" -exec sh -c 'mv $0 `basename "$0" .old`.new' '{}' \;

Die Perl-Version von rename kann eine Erweiterung wie folgt entfernen:

rename 's/\.txt$//' *.txt

Dies könnte mit find kombiniert werden, um auch Unterordner zu erstellen.


Linux
  1. So verwenden Sie den Befehl „find“, um nach mehreren Dateinamen (Erweiterungen) in Linux zu suchen

  2. Wie benenne ich mehrere Dateien mit Find um?

  3. Warten Sie, bis der Download mehrerer Dateien abgeschlossen ist?

  4. So benennen Sie mehrere Dateien zusammen in Linux mit 3 Methoden um

  5. Finden Sie mehrere Dateien und benennen Sie sie in Linux um

So benennen Sie eine Datei (en) in Linux um

8 Methoden zum gleichzeitigen Umbenennen mehrerer Dateien in Linux

So finden Sie Dateien basierend auf dem Zeitstempel in Linux

So finden Sie Dateien, die in den letzten 24 Stunden in Linux geändert wurden

So finden Sie doppelte Dateien in Linux und entfernen sie

Linux-Erweiterung zum Umbenennen mehrerer Dateien