Richiesta di un COMANDO per terminale
- pistorius08
- Scoppiettante Seguace
- Messaggi: 350
- Iscrizione: sabato 21 aprile 2012, 11:23
- Desktop: Xfce
- Distribuzione: UbuntuStudio 20.04_xubuntu-20.04.02
- Località: Camunia Valley
Richiesta di un COMANDO per terminale
Ciao a tutti ho un quesito: siccome ho circa 4/5cento di GB di musica vorrei sistemarla, avrei bisogno di un COMANDO per il terminale che scansioni la cartella dove tengo la musica e mi permetta di: prendere tutte le cartelle che contengono i file .mp3 spostandole in un’ altra cartella eliminando i file .mp3 al suo interno ma mantenendo nome e “albero” delle sopracartelle, cioè : se ad esempio la cartella che contiene i file .mp3 si chiama CD2 contenuta all’interno di MUSICA>nome artista>titolo album>CD2, il risultato finale sarà una cartella chiamata MUSICA1 con all’interno tutte sottocartelle vuote. E’ possibile? Grazie
Alegher Alegher che'l bus del cul le negher!!!!!
- xavier77
- Gruppo Documentazione
- Messaggi: 8057
- Iscrizione: venerdì 21 settembre 2012, 16:37
- Desktop: GNOME, Xfce (e altri)
- Distribuzione: X/Ubuntu 24/22/20.04 + eOS + altre
- Sesso: Maschile
- Contatti:
Re: Richiesta di un COMANDO per terminale
Wiki Ubuntu-it: partecipa! | Come pubblicare i comandi del terminale | Come usare i forum su Linux | Ambienti DE | SuperGrubDisk | Installare Ubuntu | Passare a Linux | Vecchi computer | Problemi con Kali? | Guide post install per Ubuntu: 20.04 - 22.04 | Guida post install elementary OS 7 |
-
- Scoppiettante Seguace
- Messaggi: 434
- Iscrizione: venerdì 10 dicembre 2021, 18:33
- Desktop: fvwm
- Distribuzione: (X)Ubuntu20@home; openSUSE42.3@work
- Sesso: Maschile
- Località: Paneropoli
Re: Richiesta di un COMANDO per terminale
non capisco bene ... in termini generali si tratta di prendere un albero di directories che contengono files di un dato tipo e creare un altro albero con tutti i directory vuoti ? Non mi e' chiaro a cosa serva (se sia il primo step a cui ne servira' un altro) ... forse avevo fatto qualcosa di simile tanto tempo fa ma per un sito web a scopi statistici, non ricordo se con wget o con lynx.
I comandi "du" e "find -type d" dovrebbero listare tutti i directories sotto una radice. Una giudiziosa combinazione di find -type d e -exec mkdir potrebbe replicare l'albero. O forse un uso di rsync con delle opzioni, o un tar cv pipato in un tar xv.
Conviene crerare un albero di test (i files potrebbero essere vuoti, basta crearli con touch) e provare diversi comandi fino a che si trova la solluzine desiderata.
Ah, forse tutto il thread andrebbe spostarto in una altra sezione, non c'entra nulla con gnome, e' piu' generale.
I comandi "du" e "find -type d" dovrebbero listare tutti i directories sotto una radice. Una giudiziosa combinazione di find -type d e -exec mkdir potrebbe replicare l'albero. O forse un uso di rsync con delle opzioni, o un tar cv pipato in un tar xv.
Conviene crerare un albero di test (i files potrebbero essere vuoti, basta crearli con touch) e provare diversi comandi fino a che si trova la solluzine desiderata.
Ah, forse tutto il thread andrebbe spostarto in una altra sezione, non c'entra nulla con gnome, e' piu' generale.
The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man. (G.B. Shaw)
Re: Richiesta di un COMANDO per terminale
Per generare l'albero c'è anche tree
Questo è il comando singolo, poi per ricreare l'albero altrove...
...basta parsare l'output di esso, filtrare via le foglie e tenere i rami parent di file .mp3
Edit: ma anche, come suggerito, lanciare un rsync corredato da un file di exclude costruito ad hoc
Questo è il comando singolo, poi per ricreare l'albero altrove...
...basta parsare l'output di esso, filtrare via le foglie e tenere i rami parent di file .mp3
Edit: ma anche, come suggerito, lanciare un rsync corredato da un file di exclude costruito ad hoc
Io non sono Bagheera né Akela, io non frequento la Rupe.
Io sono Kaa: faccio ballare le scimmie alle Tane Fredde.
Io sono Kaa: faccio ballare le scimmie alle Tane Fredde.
- pistorius08
- Scoppiettante Seguace
- Messaggi: 350
- Iscrizione: sabato 21 aprile 2012, 11:23
- Desktop: Xfce
- Distribuzione: UbuntuStudio 20.04_xubuntu-20.04.02
- Località: Camunia Valley
Re: Richiesta di un COMANDO per terminale
@Lucio C Visto che la mia collezione è composta da mp3 e FLAC vorrei tenere solo la collezione con i FLAC, mentre per gli mp3 che vorrei eliminare, avrei una lista di album da cercare in FLAC, in piu avrei le cartelle "svuotate" dagli mp3 ma con le immagini (Front, Back, i vari disc) e le pagine di Wikipedia relative ai vari album
@korda Sono troppo ignorante per sapere/capire cosa devo fare
Grazie per il vostro interessamento
@korda Sono troppo ignorante per sapere/capire cosa devo fare
Grazie per il vostro interessamento
Ultima modifica di pistorius08 il martedì 29 ottobre 2024, 16:44, modificato 1 volta in totale.
Alegher Alegher che'l bus del cul le negher!!!!!
Re: Richiesta di un COMANDO per terminale
Ok, ti illustro un esempio relativo al..pistorius08 ha scritto: ↑martedì 29 ottobre 2024, 15:34@korda Sono troppo ignorante per sapere/capire cosa devo fare
STEP 1 crei un file di testo chiamato, ad es., exclude.list e ci scrivi dentro qualcosa del tipo
Codice: Seleziona tutto
*.mp3
STEP 2 lanci il comando rsync con una sintassi del tipo
Codice: Seleziona tutto
rsync -vra --progress --exclude-from=exclude.list percorso_degli_mp3/ percorso_di_destinazione/
STEP 3 osservi il risultato ottenuto
Io non sono Bagheera né Akela, io non frequento la Rupe.
Io sono Kaa: faccio ballare le scimmie alle Tane Fredde.
Io sono Kaa: faccio ballare le scimmie alle Tane Fredde.
- pistorius08
- Scoppiettante Seguace
- Messaggi: 350
- Iscrizione: sabato 21 aprile 2012, 11:23
- Desktop: Xfce
- Distribuzione: UbuntuStudio 20.04_xubuntu-20.04.02
- Località: Camunia Valley
Re: Richiesta di un COMANDO per terminale
Non ti seguo, io non voglio fare un backup, e gli mp3 non sono in una sola cartella. Un'esempio che potrebbe capitare, nella cartella Negrita ho all'interno sia album in FLAC che in mp3, ma potrebbe capitare anche in altri artisti/gruppi
Io vorrei che gli album contenenti gli mp3 vengano spostati e svuotati degli mp3 ma conservare gli altri file che sono all'interno. Mi sono spiegato?
Io vorrei che gli album contenenti gli mp3 vengano spostati e svuotati degli mp3 ma conservare gli altri file che sono all'interno. Mi sono spiegato?
Ultima modifica di pistorius08 il martedì 29 ottobre 2024, 19:20, modificato 1 volta in totale.
Alegher Alegher che'l bus del cul le negher!!!!!
Re: Richiesta di un COMANDO per terminale
Dove avrei scritto di backup* e singole cartelle**?pistorius08 ha scritto: ↑martedì 29 ottobre 2024, 16:54Non ti seguo, io non voglio fare un backup, e gli mp3 non sono in una sola cartella. Un'esempio che potrebbe capitare nella cartella Negrita ho all'interno sia album in FLAC che in mp3, ma potrebbe capitare in altri artisti/gruppi
Io vorrei che gli album contenenti gli mp3 vengano spostati e svuotati degli mp3 ma conservare gli altri file che sono all'interno. Mi sono spiegato?
Hai provato almeno quanto scritto?
*: la sincronizzazione non è un backup (semicit.)
**: e se tu specificassi la cartella a monte di tutte quelle di interesse, come percorso sorgente, cosa potrà succedere?
Io non sono Bagheera né Akela, io non frequento la Rupe.
Io sono Kaa: faccio ballare le scimmie alle Tane Fredde.
Io sono Kaa: faccio ballare le scimmie alle Tane Fredde.
-
- Scoppiettante Seguace
- Messaggi: 434
- Iscrizione: venerdì 10 dicembre 2021, 18:33
- Desktop: fvwm
- Distribuzione: (X)Ubuntu20@home; openSUSE42.3@work
- Sesso: Maschile
- Località: Paneropoli
Re: Richiesta di un COMANDO per terminale
Nessuno e' "troppo ignorante per sapere/capire cosa devo fare" ... al massimo pigro per non leggere le man page, Ma perdere anche qualche ora a leggere le man page e fare delle prove e' un investimento di tempo che vale la pena. Nessuno qui puo' trovare una soluzione "chiavi in mano" o la "pappa fatta" (detto senza offesa, con riferimento alla vecchia citazione di Mao "se gli dai un pesce mangia per un giorno, se gli insegni a pescare mangia per tutta la vita" ... con disegnino fatto da me attaccato sulla porta del system manager del mio istituto), casomai per insegnare a pescare.
E quindi ... rsync non e' una soluzione di backup (anche se puo' essere usasto a tale scopo), la soluzione di @korda duplica l'intero albero di directories, escludendo gli mp3. Col vantaggio addizionale che preserva i timestamp dei file (adata di creazione modifica ecc.)
Se ... il senso invece e' di cancellare tutti gli mp3 (che ho imparato solo l'altro giorno cosa sono) e tenere i flac (che tuttora ignoro cosa siano, per me un computer serve a fare calcoli e di musica non capisco proprio nulla) e anche tutti gli altri file, non vedo perche' duplicare l'albero, basta fare un delete ricorsivo, p.es. con find
(credo che invece di -exec rm .... si possa usare -delete ma non mi sono mai arrischiato. Nota che ho scritto -exec echo rm ... per fare un dry run o giro di prova ... ti dice tutti i comandi di cancellazione ma non li esegue. Se la lista e' corretta, ripeti levando "echo". Oppure potresti usare rm -i e ti chiede il permesso prima di cancellare il file ... se sono 4 o 5 comodo, se sono 1000 decisamente scomodo
E quindi ... rsync non e' una soluzione di backup (anche se puo' essere usasto a tale scopo), la soluzione di @korda duplica l'intero albero di directories, escludendo gli mp3. Col vantaggio addizionale che preserva i timestamp dei file (adata di creazione modifica ecc.)
Se ... il senso invece e' di cancellare tutti gli mp3 (che ho imparato solo l'altro giorno cosa sono) e tenere i flac (che tuttora ignoro cosa siano, per me un computer serve a fare calcoli e di musica non capisco proprio nulla) e anche tutti gli altri file, non vedo perche' duplicare l'albero, basta fare un delete ricorsivo, p.es. con find
Codice: Seleziona tutto
find /direttorio/di/testa -name '*.mp3' -exec echo rm -v {} \;
The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself. Therefore all progress depends on the unreasonable man. (G.B. Shaw)
-
- Imperturbabile Insigne
- Messaggi: 2890
- Iscrizione: domenica 11 maggio 2008, 18:03
- Desktop: plasma
- Distribuzione: 22.04
- Località: Palermo
Re: Richiesta di un COMANDO per terminale
Buonasera gente.
@pistorius08 Credo che ci sia un problema di comunicazione.Vediamo se ho capito giusto:
· Da un albero di cartelle che ha la sua radice nella cartella MUSICA vuoi spostare in una cartella MUSICA1 solo i rami che (in qualunque livello) contengano file.mp3
· Tutti gli altri rami sono da lasciare dove stanno.
· Il nuovo albero in MUSICA1 non deve contenere i file.mp3
Se quello che ho capito è esatto, l'approccio con rsync --exclude è comodo però bisogna usare il flag -R per fargli ricreare tutte le cartelle; inoltre bisogna prima selezionare solo le cartelle contenenti .mp3 da dare in pasto a rsync
Prova questi due comandi. Niente timore, non cancellano niente quindi è tutto facilmente reversibile. Inoltre dovrebbero funzionare anche nel malaugurato caso di nomi cartelle contenenti spazi
Avviso: il comando dirname elimina la componente finale del path, che sia un file o una cartella: il risultato è che se hai cartelle vuote tra le foglie dell'albero non saranno copiate
@pistorius08 Credo che ci sia un problema di comunicazione.Vediamo se ho capito giusto:
· Da un albero di cartelle che ha la sua radice nella cartella MUSICA vuoi spostare in una cartella MUSICA1 solo i rami che (in qualunque livello) contengano file.mp3
· Tutti gli altri rami sono da lasciare dove stanno.
· Il nuovo albero in MUSICA1 non deve contenere i file.mp3
Se quello che ho capito è esatto, l'approccio con rsync --exclude è comodo però bisogna usare il flag -R per fargli ricreare tutte le cartelle; inoltre bisogna prima selezionare solo le cartelle contenenti .mp3 da dare in pasto a rsync
Prova questi due comandi. Niente timore, non cancellano niente quindi è tutto facilmente reversibile. Inoltre dovrebbero funzionare anche nel malaugurato caso di nomi cartelle contenenti spazi
Codice: Seleziona tutto
cd /PATH/ALLA/DIR/MUSICA
while read -d '' path; do rsync --exclude=*.mp3 -Ra "$(dirname "$path")" /PATH/ALLA/DIR/MUSICA1/; done < <(find -iname "*.mp3" -print0)
Re: Richiesta di un COMANDO per terminale
Nota per l'op...rai ha scritto: ↑martedì 29 ottobre 2024, 18:47Buonasera gente.
@pistorius08 Credo che ci sia un problema di comunicazione.Vediamo se ho capito giusto:
· Da un albero di cartelle che ha la sua radice nella cartella MUSICA vuoi spostare in una cartella MUSICA1 solo i rami che (in qualunque livello) contengano file.mp3
· Tutti gli altri rami sono da lasciare dove stanno.
· Il nuovo albero in MUSICA1 non deve contenere i file.mp3
Se quello che ho capito è esatto, l'approccio con rsync --exclude è comodo però bisogna usare il flag -R per fargli ricreare tutte le cartelle; inoltre bisogna prima selezionare solo le cartelle contenenti .mp3 da dare in pasto a rsync
Prova questi due comandi. Niente timore, non cancellano niente quindi è tutto facilmente reversibile. Inoltre dovrebbero funzionare anche nel malaugurato caso di nomi cartelle contenenti spaziAvviso: il comando dirname elimina la componente finale del path, che sia un file o una cartella: il risultato è che se hai cartelle vuote tra le foglie dell'albero non saranno copiateCodice: Seleziona tutto
cd /PATH/ALLA/DIR/MUSICA while read -d '' path; do rsync --exclude=*.mp3 -Ra "$(dirname "$path")" /PATH/ALLA/DIR/MUSICA1/; done < <(find -iname "*.mp3" -print0)
Viene suggerito -R di relative invece di -r di recursive in quanto adeguato alla serie di comandi che ha proposto.
Nel comando rsync secco che ho postato, genera comunque tutta l'alberatura a valle. Per il resto, scelta di cartelle etc., sarebbe da arricchire a gusto dell'op il file exclude.list che menzionavo a titolo di esempio
Io non sono Bagheera né Akela, io non frequento la Rupe.
Io sono Kaa: faccio ballare le scimmie alle Tane Fredde.
Io sono Kaa: faccio ballare le scimmie alle Tane Fredde.
Re: Richiesta di un COMANDO per terminale
Condivido in pieno, mi autosegnalo in merito
Io non sono Bagheera né Akela, io non frequento la Rupe.
Io sono Kaa: faccio ballare le scimmie alle Tane Fredde.
Io sono Kaa: faccio ballare le scimmie alle Tane Fredde.
- pistorius08
- Scoppiettante Seguace
- Messaggi: 350
- Iscrizione: sabato 21 aprile 2012, 11:23
- Desktop: Xfce
- Distribuzione: UbuntuStudio 20.04_xubuntu-20.04.02
- Località: Camunia Valley
Re: Richiesta di un COMANDO per terminale
Esatto perciò posso considerare CHIUSA la discussione, un'immenso GRAZIE per il tempo che mi avete dedicato
Alegher Alegher che'l bus del cul le negher!!!!!
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 1 ospite