[RISOLTO] Come rinominare tutte le cartelle sottocartelle e files in maiuscolo mantenendo intatta l'estensione dei files

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
LuisGis
Prode Principiante
Messaggi: 21
Iscrizione: venerdì 10 luglio 2020, 19:10
Sesso: Maschile

[RISOLTO] Come rinominare tutte le cartelle sottocartelle e files in maiuscolo mantenendo intatta l'estensione dei files

Messaggio da LuisGis » domenica 26 luglio 2020, 17:19

Salve,
devo rinominare tutte le cartelle, sottocartelle e files in maiuscolo, mantenendo intatta l'estensione dei files.
ho trovato:
find . -type f -print0 | xargs -0n 1 bash -c \ 's=$(dirname "$0")/$(basename "$0"); d=$(dirname "$0")/$(basename "$0"|tr "[a-z]" "[A-Z]"); mv -f "$s" "$d"'

Funziona perfettamente, ma rinomina con caratteri maiuscoli anche l'estensione dei files, Come poterle lasciare in originale?
Grazie
Ultima modifica di LuisGis il lunedì 27 luglio 2020, 14:02, modificato 1 volta in totale.

Avatar utente
dxgiusti
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4038
Iscrizione: lunedì 19 novembre 2007, 14:10
Desktop: Mate - Unity
Distribuzione: PCLinuxOS - Unubuntu 20.04
Sesso: Maschile
Località: Lodi

Re: Come rinominare tutte le cartelle, sottocartelle e files in maiuscolo, mantenendo intatta l'estensione dei files?

Messaggio da dxgiusti » domenica 26 luglio 2020, 18:18

ciao. io purtroppo non ti so aiutare con con il comando da te espresso, purtroppo non sono cosi bravo. nel caso non ti arrivassero indicazioni, io quello che chiedi lo faccio con un programma >> pyRenamer. impostato come da immagine, fa quello che chiedi.
Immagine

edit: purtroppo vedo che pyrenamer su ubuntu non è più presente, mi spiace.

LuisGis
Prode Principiante
Messaggi: 21
Iscrizione: venerdì 10 luglio 2020, 19:10
Sesso: Maschile

Re: Come rinominare tutte le cartelle, sottocartelle e files in maiuscolo, mantenendo intatta l'estensione dei files?

Messaggio da LuisGis » domenica 26 luglio 2020, 20:51

OK,
infatti, non trovo pyRenamer, nè come installarlo!

Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3860
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile
Contatti:

Re: Come rinominare tutte le cartelle, sottocartelle e files in maiuscolo, mantenendo intatta l'estensione dei files?

Messaggio da UbuNuovo » domenica 26 luglio 2020, 21:05

Se lo vuoi fare con Bash prova il codice che segue.
Ho lasciato echo per fare una simulazione, se va bene eliminalo:

Codice: Seleziona tutto

while read f; do
	dir="$(dirname "$f")"
	nome=$(basename "$f")
	nome_m="$(echo "${nome%.*}" | tr "[a-z]" "[A-Z]")"
	ext="${f##*.}"
	echo mv "$f" "$dir/$nome_m.$ext"
done < <(find . -type f -print)
Se lo vuoi usare da terminale, su una sola riga:
simulazione:

Codice: Seleziona tutto

while read f; do dir="$(dirname "$f")";nome=$(basename "$f");nome_m="$(echo "${nome%.*}" | tr "[a-z]" "[A-Z]")";ext="${f##*.}";echo mv "$f" "$dir/$nome_m.$ext";done < <(find . -type f -print)
senza echo, questo rinomina davvero:

Codice: Seleziona tutto

while read f; do dir="$(dirname "$f")";nome=$(basename "$f");nome_m="$(echo "${nome%.*}" | tr "[a-z]" "[A-Z]")";ext="${f##*.}";mv "$f" "$dir/$nome_m.$ext";done < <(find . -type f -print)
Nel caso in cui sia il primo a rispondere ad una richiesta di aiuto...chiunque abbia una soluzione migliore o anche solo diversa dalla mia è incoraggiato ad intervenire liberamente senza inviarmi alcun messaggio privato. In programmazione è basilare sapere che si può ottenere il medesimo risultato utilizzando metodi diversi.

LuisGis
Prode Principiante
Messaggi: 21
Iscrizione: venerdì 10 luglio 2020, 19:10
Sesso: Maschile

Re: Come rinominare tutte le cartelle, sottocartelle e files in maiuscolo, mantenendo intatta l'estensione dei files?

Messaggio da LuisGis » lunedì 27 luglio 2020, 5:01

Rinomina tutti i files, lasciando intatte le estensioni.
Non rinomina le directory e subdirectory
Grazie

LuisGis
Prode Principiante
Messaggi: 21
Iscrizione: venerdì 10 luglio 2020, 19:10
Sesso: Maschile

Re: Come rinominare tutte le cartelle, sottocartelle e files in maiuscolo, mantenendo intatta l'estensione dei files?

Messaggio da LuisGis » lunedì 27 luglio 2020, 10:12

Si può rinominare anche i nomi delle cartelle in caratteri maiuscoli?

Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3860
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile
Contatti:

Re: Come rinominare tutte le cartelle, sottocartelle e files in maiuscolo, mantenendo intatta l'estensione dei files?

Messaggio da UbuNuovo » lunedì 27 luglio 2020, 12:51

Mi ero basto sul codice che avevi postato, quello non rinomina le directory.
Allora cambio metodo, uso rename in due passaggi.
Qua, prima si rinominano le directory e poi i file (si può fare anche il contrario).
edit: Meglio rinominare prima i file e poi le directory.
Provalo in /tmp su una copia delle directory originali, non c'è -n per la simulazione.

Codice: Seleziona tutto

find . -mindepth 2 -depth -type d -execdir rename 'y/a-z/A-Z/ if -d;' "{}" \;
find . -mindepth 2 -type f -exec rename 's@(^.+/)(.+\.)@$1\U$2@' "{}" \; 
Con -mindepth imposti la profondità da cui iniziare a rinominare, con -mindepth 2 non rinomina file e directory a livello di esecuzione del codice ma solo quelli interni alla directory.
Ultima modifica di UbuNuovo il lunedì 27 luglio 2020, 19:03, modificato 1 volta in totale.
Nel caso in cui sia il primo a rispondere ad una richiesta di aiuto...chiunque abbia una soluzione migliore o anche solo diversa dalla mia è incoraggiato ad intervenire liberamente senza inviarmi alcun messaggio privato. In programmazione è basilare sapere che si può ottenere il medesimo risultato utilizzando metodi diversi.

LuisGis
Prode Principiante
Messaggi: 21
Iscrizione: venerdì 10 luglio 2020, 19:10
Sesso: Maschile

Re: Come rinominare tutte le cartelle, sottocartelle e files in maiuscolo, mantenendo intatta l'estensione dei files?

Messaggio da LuisGis » lunedì 27 luglio 2020, 14:01

Perfetto! Grazie

Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3860
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu 14.04
Sesso: Maschile
Contatti:

Re: [RISOLTO] Come rinominare tutte le cartelle sottocartelle e files in maiuscolo mantenendo intatta l'estensione dei f

Messaggio da UbuNuovo » lunedì 27 luglio 2020, 19:01

Di nulla
Ciaux

Ripensandoci, nel dubbio, è meglio rinominare prima i file e poi le directory.
Questo nel caso in cui al posto del punto (find .) si usi il nome della directory genitore e che -mindepth comprenda quella directory.
Dopo la rinomina della directory genitore, si dovrebbe usare il secondo comando con il nome della directory genitore in maiuscolo!
Nel caso in cui sia il primo a rispondere ad una richiesta di aiuto...chiunque abbia una soluzione migliore o anche solo diversa dalla mia è incoraggiato ad intervenire liberamente senza inviarmi alcun messaggio privato. In programmazione è basilare sapere che si può ottenere il medesimo risultato utilizzando metodi diversi.

Avatar utente
trekfan1
Moderatore Globale
Moderatore Globale
Messaggi: 21377
Iscrizione: domenica 21 maggio 2006, 10:51
Desktop: Gnome
Distribuzione: Ubuntu 20.04 e 20.10 (dev) 64 bit
Sesso: Maschile
Località: Formigine (MO) | Accecante Asceta

Re: [RISOLTO] Come rinominare tutte le cartelle sottocartelle e files in maiuscolo mantenendo intatta l'estensione dei f

Messaggio da trekfan1 » martedì 28 luglio 2020, 14:08

Il [Risolto] va messo evitando il tutto maiuscolo, correggi, grazie

Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti