[RISOLTO] Copiare file da più sottocartelle
[RISOLTO] Copiare file da più sottocartelle
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à
-
- Scoppiettante Seguace
- Messaggi: 680
- Iscrizione: domenica 24 agosto 2008, 21:50
- Desktop: gnome-flashback-compiz
- Distribuzione: Ubuntu 16.04 LTS
Re: Copiare file da più sottocartelle
Codice: Seleziona tutto
cp -r directory_da_copiare /directory_finale
Re: Copiare file da più sottocartelle
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?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.
[...]
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
Re: Copiare file da più sottocartelle
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)
Re: Copiare file da più sottocartelle
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 \;
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
Vedi tu se hai voglia di parlarne.
Io sono a disposizione per eventuali chiarimenti in merito
Re: Copiare file da più sottocartelle
Find: manca l'argomento per >
ho una soluzine diversa?
Grazie in anticipo
Re: Copiare file da più sottocartelle
Puoi postare l'output del comando:
Codice: Seleziona tutto
find --version
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
In questo modo il tuo messaggio risulta più facilmente comprensibile.
Saluti
Re: Copiare file da più sottocartelle
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)
Re: Copiare file da più sottocartelle
Cerchiamo di capire perché non ti funziona.
Se dai il comando:
Codice: Seleziona tutto
find ~/recup_dir.* -type f -iname "*.mp3"
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
Re: Copiare file da più sottocartelle
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
Re: Copiare file da più sottocartelle
Codice: Seleziona tutto
find ~/recup_dir.* -type f -iname "*.mp3" | while read fileName ; do mv $fileName path_directory_di_destinazione; done
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.
Re: Copiare file da più sottocartelle
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!
Re: [RISOLTO] Copiare file da più sottocartelle
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 \;
ps:
che ti dice se dai:
Codice: Seleziona tutto
find path_directory_di_destinazione -type f -iname "*.mp3" | wc -l
Re: [RISOLTO] Copiare file da più sottocartelle
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
Re: [RISOLTO] Copiare file da più sottocartelle
Codice: Seleziona tutto
find /home/nzechck/mp3 -type f -iname "*.mp3" | wc -l
Due su due... un'ottima media
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 \;
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
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
Re: [RISOLTO] Copiare file da più sottocartelle
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]
Codice: Seleziona tutto
find /home/nzechck/mp3 -type f -iname "*.mp3" | wc -l
1343
- Laycastle
- Entusiasta Emergente
- Messaggi: 1183
- Iscrizione: sabato 9 aprile 2011, 21:54
- Desktop: KDE 4.8
- Distribuzione: Gentoo ~amd64
- Località: Torino
Re: [RISOLTO] Copiare file da più sottocartelle
Manca il \; finale.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»
Credo intendessenzechck85 ha scritto:Ciao Leo
Come và? di seguito ti posto l'ultimo comandoCodice: 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]
Codice: Seleziona tutto
find /home/nzechck/mp3 -type f -iname "*.mp3" -exec echo mv {} /home/nzechck/nuovamp3 \;
Re: [RISOLTO] Copiare file da più sottocartelle
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
Re: [RISOLTO] Copiare file da più sottocartelle
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
Re: [RISOLTO] Copiare file da più sottocartelle
Codice: Seleziona tutto
find /home/nzechck/mp3 -type f -iname "*.mp3" -exec echo mv {} /home/nzechck/nuovamp3\ \;
Anche in questo caso, stai attento al backslash e il punto e virgola finali.
Ciao
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 28 ospiti