GNU/Linux >> Linux Esercitazione >  >> Linux

Trova e rinomina una directory

È un errore innocuo che puoi eliminare con -depth opzione.

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

Il comportamento normale di Find è elaborare le directory e quindi ricorrere a esse. Dal momento che l'hai rinominato, trova i reclami quando tenta di ricorrere. Il -depth l'opzione dice a find di eseguire prima la ricorsione, quindi di elaborare la directory dopo.


Manca -execdir opzione! Come indicato nelle pagine man di find:

-execdir command {};

Come -exec , ma il comando specificato viene eseguito dalla sottodirectory contenente il file corrispondente, che normalmente non è la directory in cui hai iniziato a trovare.

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


Con la risposta precedente il contenuto delle mie cartelle è scomparso.
Questa è la mia soluzione. Funziona bene: for i in find -type d -name 'oldFolderName';dodirname=$(dirname "$i")mv $dirname/oldFolderName $dirname/newFolderNamedone


Linux
  1. Rinomina tutti i file e i nomi delle directory in minuscolo in Linux

  2. Trova tutto [nome file].mp4 e rinomina [nome file].audio?

  3. Autorizzazioni Ssh e Home Directory?

  4. Escludi directory in Trova?

  5. Trova Directory di esclusione?

Come trovare il numero di file in una directory e sottodirectory

Come rinominare una directory su Linux

Linux:trova il numero di file in una directory e sottodirectory

Trova e sostituisci con sed nella directory e nelle sottodirectory

Trova tutti i file a zero byte nella directory e nelle sottodirectory

Trova più file e rinominali in Linux