[RISOLTO] Copiare file da più sottocartelle

Installazione, configurazione e uso di programmi e strumenti.

[RISOLTO] Copiare file da più sottocartelle

Messaggioda nzechck85 » martedì 17 aprile 2012, 11:39

Ciao a tutti Ragazzi!!
Ho un piccolo e banale problema che non riesco a risolvere. Successivamente a un recupero di dati da hard disk, il software che ho utilizzato mi ha creato la bellezza di 339 cartelle nella cartella home. Il mio intento è quello di copiare tutti i file contenuti in queste 339 cartelle e spostarli in un unica cartella. i file nelle cartelle sono tutti mp3 quindi filtrare la ricerca con l'estensione dei file.
Vi ringrazio anticipaamente per la pazienza e disponibilità
Ultima modifica di nzechck85 il martedì 24 aprile 2012, 21:27, modificato 1 volta in totale.
nzechck85 Non specificato
Prode Principiante
 
Messaggi: 15
Iscrizione: febbraio 2010

Re: Copiare file da più sottocartelle

Messaggioda ispaniko7 » martedì 17 aprile 2012, 12:34

Per copiare una directory in un altra devi dare da terminale:

Codice: Seleziona tutto
cp -r directory_da_copiare /directory_finale
Posso comandare anche il vento signore, c'è un uragano dentro di me che raderà al suolo ogni cosa se solo oserete sfidarmi.
Avatar utente
ispaniko7 Non specificato
Scoppiettante Seguace
Scoppiettante Seguace
 
Messaggi: 575
Iscrizione: agosto 2008
Distribuzione: Debian 6.0
Desktop: Fluxbox

Re: Copiare file da più sottocartelle

Messaggioda l3on4rdo » martedì 17 aprile 2012, 12:37

nzechck85 ha scritto:[...]
Successivamente a un recupero di dati da hard disk, il software che ho utilizzato mi ha creato la bellezza di 339 cartelle nella cartella home. Il mio intento è quello di copiare tutti i file contenuti in queste 339 cartelle e spostarli in un unica cartella. i file nelle cartelle sono tutti mp3 quindi filtrare la ricerca con l'estensione dei file.
[...]

Queste directory hanno dei nomi particolari? Nel senso, hanno una radice comune e magari un numero finale che le distingue? O qualcosa sempre di questo genere?

In caso negativo, gli mp3 (per quanto riguarda la tua home e le sue sottodirectory) sono contenuti solo in quelle cartelle?
O ce ne sono altre che ne contengono (di mp3)?

Fammi sapere, ciao
l3on4rdo
 

Re: Copiare file da più sottocartelle

Messaggioda nzechck85 » martedì 17 aprile 2012, 14:24

Ciao e grazie per le immeddiate risposte

inizialmente io avevo pensato a un find *.mp3 | cp *.mp3 /percorso cartella di destinazione
ma naturalmente mi và in errore: cp ha bisogno di un percorso sorgente

le cartelle si intitolano tutte recup_dir.(numero cartella)
nzechck85 Non specificato
Prode Principiante
 
Messaggi: 15
Iscrizione: febbraio 2010

Re: Copiare file da più sottocartelle

Messaggioda l3on4rdo » martedì 17 aprile 2012, 14:38

Creati l'unica directory in cui vuoi spostare il tutto.
Una volta creata la directory, dai il comando:
Codice: Seleziona tutto
find ~/recup_dir.* -type f -iname "*.mp3" -exec mv {} path_della_directory_in_cui_spostare_il_malloppo_di_file_mp3 \;


Fai attenzione (e in caso parliamone prima che si creino incidenti) al fatto che se ci sono, nelle differenti directory recup_dir, dei file con lo stesso nome, nello spostamento ti verranno sovrascritti e alla fine vedrai solo l'ultimo.
Inoltre credo che il comando non funziona se degli spazi nel nome dei file (cosa che a priori escluderei, visto che sono generati da un programma che penso sia "sensato").

Se si verifica uno dei precedenti casi, dillo che facciamo delle prove prima di procedere.
Altrimenti vai sereno con il comando
(magari prima, per precauzione copia il contenuto di quelle directory da un'altra parte, oppure usa il comando cp al posto di mv).

Ciao

ps:
nel comando che hai postato:
Codice: Seleziona tutto
find *.mp3 | cp *.mp3 /percorso cartella di destinazione

ci sono un paio di errori concettuali.
Vedi tu se hai voglia di parlarne.
Io sono a disposizione per eventuali chiarimenti in merito :)
l3on4rdo
 

Re: Copiare file da più sottocartelle

Messaggioda nzechck85 » mercoledì 18 aprile 2012, 12:52

Digitando il comando consigliato da l3on4rdo, mi viene visualizzato il seguente errore:

Find: manca l'argomento per <<- exec>>

ho una soluzine diversa?

Grazie in anticipo
nzechck85 Non specificato
Prode Principiante
 
Messaggi: 15
Iscrizione: febbraio 2010

Re: Copiare file da più sottocartelle

Messaggioda l3on4rdo » mercoledì 18 aprile 2012, 15:12

Di soluzioni diverse ne esistono minimo due :)
Puoi postare l'output del comando:
Codice: Seleziona tutto
find --version

e anche il comando che hai dato e l'errore che ti ha prodotto (facendo proprio il copia incolla dal terminale :) )

Inoltre, per postare il codice, ricorda di usare i tag appositi.
Clicchi sul bottone con il carattere #, subito sopra le faccine.
Poi inserisci il testo tra i due tag che ti vengono visualizzati nel messaggio che stai scrivendo, in questo modo:
[nobbc]
Codice: Seleziona tutto
testo del codice
oppure
output di un comando
[/nobbc]
In questo modo il tuo messaggio risulta più facilmente comprensibile.

Saluti
l3on4rdo
 

Re: Copiare file da più sottocartelle

Messaggioda nzechck85 » venerdì 20 aprile 2012, 14:51

Codice: Seleziona tutto
find --version
find (GNU findutils) 4.4.2
Copyright (C) 2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Eric B. Decker, James Youngman, and Kevin Dalley.
Compilato usando GNU gnulib versione e5573b1bad88bfabcda181b9e0125fb0c52b7d3b
Funzionalità abilitate: D_TYPE O_NOFOLLOW(enabled) LEAF_OPTIMISATION FTS() CBO(level=0)
nzechck85 Non specificato
Prode Principiante
 
Messaggi: 15
Iscrizione: febbraio 2010

Re: Copiare file da più sottocartelle

Messaggioda l3on4rdo » venerdì 20 aprile 2012, 15:24

Hai la mia stessa versione di find, quindi se stai usando una versione di Ubuntu non dovrebbero esserci problemi e il comando che ti ho suggerito dovrebbe funzionare.
Cerchiamo di capire perché non ti funziona.

Se dai il comando:
Codice: Seleziona tutto
find ~/recup_dir.* -type f -iname "*.mp3"

cosa ti risponde il terminale?
Nel senso, ti mostra i path dei file mp3?
Te li mostra correttamente?
Posta, in caso, un estratto dell'output.
(dico un estratto perché l'output del comando, se ne hai tanti, potrebbe essere molto lungo).

Ciao
l3on4rdo
 

Re: Copiare file da più sottocartelle

Messaggioda nzechck85 » sabato 21 aprile 2012, 16:38

Il comando elenca tutti i file mp3 di tutte le cartelle,
il terminale risponde così:
Codice: Seleziona tutto
Recupero/recup_dir.3/f63555523.mp3
Recupero/recup_dir.3/f64370291.mp3
Recupero/recup_dir.3/f64309187.mp3
Recupero/recup_dir.3/f60295107.mp3


Ciao
nzechck85 Non specificato
Prode Principiante
 
Messaggi: 15
Iscrizione: febbraio 2010

Re: Copiare file da più sottocartelle

Messaggioda l3on4rdo » martedì 24 aprile 2012, 0:11

Se non ti funziona il precedente comando, prova a dare:
Codice: Seleziona tutto
find ~/recup_dir.* -type f -iname "*.mp3" | while read fileName ; do mv $fileName path_directory_di_destinazione; done


ps:
mi sembra comunque strano che non ti funzioni l'opzione -exec
Se questo comando ti risolve, rimarrebbero comunque due questioni aperte. Questa di exec e quella della spiegazione degli errori del comando che hai postato.
l3on4rdo
 

Re: Copiare file da più sottocartelle

Messaggioda nzechck85 » martedì 24 aprile 2012, 21:26

Bèh!... GRANDIOSO!!
Il risultato è quello richiesto in principio, ma come dici tu ci sono delle cose da rivedere, come ad esempio il comando -exec che non funziona e il "mio" comando (pure)

Per ora non posso che ringraziarti infinitamente per la Pazienza e supporto offerto

P.S. avrei anche qualche quesito su samba :) ..... ma rimandiamo per ora

Grazie ancora
a presto!
nzechck85 Non specificato
Prode Principiante
 
Messaggi: 15
Iscrizione: febbraio 2010

Re: [RISOLTO] Copiare file da più sottocartelle

Messaggioda l3on4rdo » mercoledì 25 aprile 2012, 2:53

Per samba apri una nuova discussione nella sezione che ritieni più opportuna (al massimo la si sposta ).
Per il resto, mi sembra strano che exec non ti funzioni.
Prova a dare il comando:
Codice: Seleziona tutto
find ~/recup_dir.* -type f -iname "*.mp3" -exec echo mv {} path_della_directory_in_cui_spostare_il_malloppo_di_file_mp3 \;

Che ti dice?

ps:
che ti dice se dai:
Codice: Seleziona tutto
find path_directory_di_destinazione -type f -iname "*.mp3" | wc -l

?
l3on4rdo
 

Re: [RISOLTO] Copiare file da più sottocartelle

Messaggioda nzechck85 » mercoledì 25 aprile 2012, 10:31

Ciao Leo
Di seguito gli output dei comandi

Codice: Seleziona tutto
 ~Recupero/recup_dir.* -type f -iname "*.mp3" -exec echo mv {} /home/nzechck/mp3/
find: manca l'argomento per «-exec»


Codice: Seleziona tutto
find /home/nzechck/mp3 -type f -iname ".mp3" | wc -l
0
nzechck85 Non specificato
Prode Principiante
 
Messaggi: 15
Iscrizione: febbraio 2010

Re: [RISOLTO] Copiare file da più sottocartelle

Messaggioda l3on4rdo » mercoledì 25 aprile 2012, 19:24

Il secondo comando l'ho completamente toppato :)
Codice: Seleziona tutto
find /home/nzechck/mp3 -type f -iname "*.mp3" | wc -l


anche il primo... è toppato...
Due su due... un'ottima media :D

Dai il comando:
Codice: Seleziona tutto
find path_directory_dove_hai_spostato_gli_mp3 -type f -iname "*.mp3" echo -exec mv {} path_della_directory_in_cui_spostare_il_malloppo_di_file_mp3 \;


Si dovrebbe capire come mai non ti funzionava l'exec, in questo modo (ovvero, sono test per iniziare a capire da cosa possa dipendere)
Comunque, alle brutte, mi sa che è meglio procedere creandosi una directory ad hoc, con il giusto contenuto e poi fare i test su di essa. Vediamo dopo questi output come procedere.

In merito al tuo comando:
Codice: Seleziona tutto
find *.mp3 | cp *.mp3 /percorso cartella di destinazione

ci sono un po' di errori ed incomprensioni.
Allora, il find in quel modo ti cerca nelle directory il cui nome è di questo tipo "qualsiasi-serie-di-caratteri".mp3
Non ti cerca, come penso tu volessi fare, tutti gli mp3.
Il primo parametro, come lo hai scritto tu, è la directory in cui fare la ricerca.
Inoltre la pipe è gestita malamente, nel senso che tu redirezioni (con la pipe) l'output del comando a sinistra della pipe verso il comando a destra della pipe.
Di nuovo, anche se come errore si vede spesso, l'output va letto e gestito.
In quel modo (con il cd *.mp3) inoltre, non associ i risultati del primo comando al secondo. Restano scorrelati e in pratica bash non capisce cosa gli stai chiedendo.
(questo perché avevi chiesto lumi sul tuo comando :) )

Ciao
l3on4rdo
 

Re: [RISOLTO] Copiare file da più sottocartelle

Messaggioda nzechck85 » sabato 28 aprile 2012, 15:11

Ciao Leo
Come và? di seguito ti posto l'ultimo comando
Codice: Seleziona tutto
find /home/nzechck/mp3 -type f -iname "*.mp3" echo -exec mv {} /home/nzechck/nuovamp3
find: i percorsi devono precedere le espressioni: echo
Uso: find [-H] [-L] [-P] [-Olivello] [-D help|tree|search|stat|rates|opt|exec] [percorso...] [espressione]


questo è l'altro
Codice: Seleziona tutto
find /home/nzechck/mp3 -type f -iname "*.mp3" | wc -l
1343


Grazie ancora
nzechck85 Non specificato
Prode Principiante
 
Messaggi: 15
Iscrizione: febbraio 2010

Re: [RISOLTO] Copiare file da più sottocartelle

Messaggioda Laycastle » sabato 28 aprile 2012, 15:24

nzechck85 ha scritto:Ciao Leo
Di seguito gli output dei comandi

Codice: Seleziona tutto
 ~Recupero/recup_dir.* -type f -iname "*.mp3" -exec echo mv {} /home/nzechck/mp3/
find: manca l'argomento per «-exec»

Manca il \; finale.
nzechck85 ha scritto:Ciao Leo
Come và? di seguito ti posto l'ultimo comando
Codice: Seleziona tutto
find /home/nzechck/mp3 -type f -iname "*.mp3" echo -exec mv {} /home/nzechck/nuovamp3
find: i percorsi devono precedere le espressioni: echo
Uso: find [-H] [-L] [-P] [-Olivello] [-D help|tree|search|stat|rates|opt|exec] [percorso...] [espressione]


Credo intendesse
Codice: Seleziona tutto
find /home/nzechck/mp3 -type f -iname "*.mp3" -exec echo mv {} /home/nzechck/nuovamp3 \;


Ciao. :D
Ultima modifica di Laycastle il sabato 28 aprile 2012, 15:30, modificato 1 volta in totale.
la via più breve tra due punti è l'arabesco.
Avatar utente
Laycastle Maschile
Entusiasta Emergente
Entusiasta Emergente
 
Messaggi: 1183
Iscrizione: aprile 2011
Località: Torino
Distribuzione: Gentoo ~amd64
Desktop: KDE 4.8

Re: [RISOLTO] Copiare file da più sottocartelle

Messaggioda l3on4rdo » sabato 28 aprile 2012, 15:26

Come ha notato Laycastle, nei comandi che dai non hai copiato anche il finale ;\
Anche da un tuo post precedente si vedeva, ma non me ne ero accorto.
Ulteriori test sono inutili, perché exec ti viene riconosciuto, se dai il comando completo :)

Ciao
l3on4rdo
 

Re: [RISOLTO] Copiare file da più sottocartelle

Messaggioda nzechck85 » sabato 28 aprile 2012, 15:45

Ah! Cacchio

Però anche così facendo il terminale si blocca in questa situazione:
Codice: Seleziona tutto
find /home/nzechck/mp3 -type f -iname "*.mp3" echo -exec mv {} /home/nzechck/nuovamp3\
>


Si aspetta qualcolsaltro? è normale?

Grazie ancora
nzechck85 Non specificato
Prode Principiante
 
Messaggi: 15
Iscrizione: febbraio 2010

Re: [RISOLTO] Copiare file da più sottocartelle

Messaggioda l3on4rdo » sabato 28 aprile 2012, 16:02

Il comando corretto è:
Codice: Seleziona tutto
find /home/nzechck/mp3 -type f -iname "*.mp3" -exec echo mv {} /home/nzechck/nuovamp3\ \;

Come ti ha fatto notare Laycastle (errore mio) avevo invertito per sbaglio exec ed echo. Vanno bene come scritti qui sopra (non edito i precedenti messaggi, altrimenti non si capisce il senso della discussione :) )
Anche in questo caso, stai attento al backslash e il punto e virgola finali.

Ciao
l3on4rdo
 

Successiva

Torna a Applicazioni

Chi c’è in linea

Visualizzano questa sezione: 0 utenti registrati e 13 ospiti