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

Suchen Sie ein Verzeichnis und benennen Sie es um

Es ist ein harmloser Fehler, den Sie mit -depth beseitigen können Option.

find . -depth -type d -name 'thefoldername*' -exec mv {} newfoldername \;

Das normale Verhalten von Find besteht darin, Verzeichnisse zu verarbeiten und dann in sie zu rekursieren. Da Sie es umbenannt haben, beschwert sich find, wenn es versucht, zu rekursieren. Die -depth Die Option weist find an, zuerst zu rekursieren und dann das Verzeichnis danach zu verarbeiten.


Es fehlt das -execdir Möglichkeit! Wie in den Manpages von find angegeben:

-execdir command {};

Wie -exec , aber der angegebene Befehl wird aus dem Unterverzeichnis ausgeführt, das die übereinstimmende Datei enthält, was normalerweise nicht das Verzeichnis ist, in dem Sie find gestartet haben.

find . -depth -type d -name 'thefoldername*' -execdir mv {} newfoldername \;


Mit der vorherigen Antwort sind meine Ordnerinhalte verschwunden.
Das ist meine Lösung. Es funktioniert gut: for i in find -type d -name 'oldFolderName';dodirname=$(dirname "$i")mv $dirname/oldFolderName $dirname/newFolderNamedone


Linux
  1. So finden Sie die Anzahl der Dateien in einem Verzeichnis und Unterverzeichnissen

  2. So benennen Sie ein Verzeichnis unter Linux um

  3. Alle [Dateiname].mp4 finden und [Dateiname].audio umbenennen?

  4. Ausschlussverzeichnis finden?

  5. Muster finden und verschieben?

Berechtigungen für SSH- und Home-Verzeichnisse?

Verzeichnis in Suchen ausschließen?

Linux:Anzahl der Dateien in einem Verzeichnis und Unterverzeichnissen finden

6 mv-Befehlsbeispiele zum Verschieben oder Umbenennen von Linux-Dateien und -Verzeichnissen

So führen Sie den Befehl „find“ nur im aktuellen Verzeichnis und nicht in Unterverzeichnissen aus

Finden Sie mehrere Dateien und benennen Sie sie in Linux um