View Full Version : Aiuto su qualche semplice comando di shell
ciao, avrei bisogno di una mano d'aiuto per qualche piccolo comandino di shell...
l'esercizio che mi interessa fare è: copiare tutti i file .txt di una directory e delle sue sottodirectory in un altra directory..
con il comando cp non si possono copiare i file che ci sono nelle sotto cartelle, ho provato con il comando: find -name '*.txt'
ma in questo modo ottengo l'output a video dei file che mi interessano, non so come e con quale comando concatenare questo find..
lo stesso esercizio lo dovrei fare con i file nascosti..
ho cercato un pò sul comando ls ma non ho trovato niente che mi possa aiutare.
se qualcuno ha qualche consiglio. :rolleyes:
Caldwell83
02-12-2008, 12:35
Facendo il man di "cp" ho trovato questo:
-R, -r, --recursive
copy directories recursively
Non so se fa quello che vuoi tu.
Oppure potresti fare una piccola shell in questo modo:
for file in `find -name '*.txt'`
do
nome_file=`basename $file`
cp $file directory_destinazione/$nome_file
done
Facendo il man di "cp" ho trovato questo:
-R, -r, --recursive
copy directories recursively
Non so se fa quello che vuoi tu.
no, questo serve per copiare le cartelle, invece io dovrei copiare solo i file .txt, non tutta la cartella..
Oppure potresti fare una piccola shell in questo modo:
for file in `find -name '*.txt'`
do
nome_file=`basename $file`
cp $file directory_destinazione/$nome_file
done
nel compito non posso fare uno script, l'esercizio richiede di copiare quei file con una riga di comando. :muro:
Caldwell83
02-12-2008, 13:12
Forse ho trovato:
cp --target-directory=directory_destinazione `find -name '*.txt'`
Forse ho trovato:
cp --target-directory=directory_destinazione `find -name '*.txt'`
ok, ci siamo quasi!!
diciamo che funziona, però se ho dei file con dei nome tipo "prova 5.txt"
il terminale mi dà 2 righe di errore (una per "prova" e l'altra per "5.txt") con scritto "No such file or directory"..
insomma il comando non riconosce gli spazi a quanto pare..
ma con l'asterisco non dovrebbe copiare tutti i file che finiscono con .txt? :confused:
Caldwell83
02-12-2008, 14:15
Prova cosi':
cp --target-directory=directory_destinazione "`find -name '*.txt'`"
Edit: mmm... mi sa che non funziona
Prova cosi':
cp --target-directory=directory_destinazione "`find -name '*.txt'`"
Edit: mmm... mi sa che non funziona
eh no non funziona...
e magari ora lo posso provare sul pc e sperimentare un pò, ma al compito come si fa?!? mhaa
Caldwell83
02-12-2008, 14:50
Ho sempre avuto grossi problemi a lavorare con file che hanno nomi con gli spazi.
L'unica soluzione che ho trovato è di non usare mai nomi con gli spazi.
Ho sempre avuto grossi problemi a lavorare con file che hanno nomi con gli spazi.
L'unica soluzione che ho trovato è di non usare mai nomi con gli spazi.
vabbè, male che vada se in qualche altro compito richiederà di nuovo quell'esercizio metterò quella soluzione,
sperando che il prof non la vada a provare, o che lo provi con file con nomi senza spazi!! :p
comunque grazie 1000
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.