Sono alle prese con un problema apparentemente banale ma da cui non riesco a uscire. Un sistema automatico genera una serie (numerosa) di directory e sottodirectory, ad esempio:
ogni sottodirectory contiene evidentemente dei files. E' possibile dire con riga di comando al sistema di copiare ogni file di sottodirectory nella rispettiva directory superiore? (Insomma copiare ogni file contenuto in |
Se ho capito bene, e se hai una struttura del tipo:
allora puoi fare qualcosa del tipo (uso
in modo da avere alla fine
però attenzione, perché se per esempio hai un file con lo stesso nome in due subdir della stessa dir, per esempio
nello spostamento dovrebbero venire a trovarsi entrambi in Infine, per cancellare tutte le
@enzotib: mi complimento per la risposta. @ilgallinetta: no, affinché gli
Per non avere in seguito sorprese, ricordarsi subito di rimettere le cose a posto con
(per aiutare la memoria, s ed u stanno per set e unset). @enzotib: ti ringrazio per il chiarimento.
per evitare sorprese con files contenuti in cartelle nascoste,andrebbe impostato per primo.
sarebbe l'ultimo, dopo la cancellazione. Sì, proprio così. C'è da puntualizzare che questi comandi sono limitati a bash, quindi funzionano da linea di comando e con script eseguiti con bash. Se eseguiamo uno script con sh invece non c'è un modo semplice per gestire i file nascosti. Grazie a tutti dell'interessamento e dell'aiuto. I files in questione fortunatamente vengono usati solo dallo script che sto costruendo. Provo quanto prima la risposta di @enzotib, anche se sono già sicuro che sarà - come al solito - efficace ;) @enzotib non conviene mettere degli apici qui
nel caso le directory abbiano dei nomi con spazi? @dadexix86: assolutamente no, altrimenti il carattere "
l'output è
Come al solito, grazie :)
5 su 9
mostra altri 4 commenti
|
Segui questa domanda
Via email:Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui
Via RSS:Basi di markdown
- *corsivo* o __corsivo__
- **grassetto** o __grassetto__
- collegamento:[testo](http://url.com/ "titolo")
- immagine?
- elenco numerato: 1. Foo 2. Bar
- per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
- è supportato anche semplice HTML
Tag:
domanda posta: 08 Jan '15, 23:35
domanda visualizzata: 2,812 volte
ultimo aggiornamento: 10 Jan '15, 11:38
Sì, basta dare
EDIT: quello che avevo scritto prima non aveva senso :)
C'è da dire che come suggerisce @dadexix86, il comando cp copia i files da una cartella ad un'altra, lasciando la cartella d'origine inalterata, con tutti i files copiati nelle stesse condizioni in cui erano prima della copia, occupando solo più spazio
Se invece si volesse spostarli da una cartella ad un'altra, il comando cp andrebbe sostituito con il comando mv.
Però prima di spostarli bisogna fare attenzione al fatto che se questi files dovessero servire ad altri programmi, che per funzionare li cercano nella directory d'origine, non trovandoli potrebbero non funzionare correttamente.
Il punto è che le cartelle sono numerose e le sottocartelle ancor più, e volevo compilare uno script che mi evitasse la scocciatura di dover specificare il nome di ogni cartella e sottocartella (che peraltro nel mio caso hanno nomi alfanumerici casuali). cp /home/chicco/ * / * /* /home/chicco/ * / * mi sembrava "onesto", ma la shell mi restituisce un errore di "redirezione ambigua" Per ora grazie ad entrambi, proverò la risposta di @enzotib