Newsgroup: it.comp.os.linux.sys
Titolo: script bash

come posso fare in shript a fare tanti tar di una dir?
cioč fare tanti tar per ogni singola sottorirectory?
es:
/test contiene:
/test/test1
/test/test2
/test/test3
voglio che mi faccia un ls e mi faccia i tar in funzione delle dir
contenute...
Grazie
Stefano

Sgranocchiando il cranio di Ravara Stefano --- MaxTemplar[DT] ---, vi
trovai inciso:

tipo:
for d in `ls`; do tar cf $d.tar $d ; done
?
Byez
-- 
Emanuele Balla aka Skull
-----------------------------------------------------------------------
Besides, I think [Slackware] sounds better than 'Microsoft', don't you?
(By Patrick Volkerding)

> for d in `ls`; do tar cf $d.tar $d ; done
ma cosě non mi elenca anche i file? volevo evitare di backuppare i file
liberi se ce n'erano..
Grazie
Stefano

 liberi se ce n'erano..
for d in `ls -d */| sed 's/\///'`; do tar cf $d.tar $d ; done
sicuramente c'è un modo più pulito, ma questo è quello che mi viene in
mente su due piedi...
byez..


Grazie!!!!
Stefano

contenute...
Penso che find sia la soluzione migliore (opzione -exec, oppure fai le cose
lunghe con ls test e xargs).
-- 
Antonio
| Pretendi una risposta immediata dal NG?
| Puoi ottenerla!
| 
http://groups.google.com/advanced_group_search

 liberi se ce n'erano..
Per fare un tar separato per tutte le sottodirectories contenute nella
directory corrente:
find . -maxdepth 1 -type d \! -name "." -exec tar cf {}.tar {} \;
find e` un comando difficile da usare ma molto efficace.
Ciao,
-- 
       Roberto Divia`             Love at first sight is one of the greatest
       =============             labour-saving devices the world has ever seen.
Mailbox: C02110                 CERN-European Organization for Nuclear Research
E-mail: 
Robert...@cern.ch
           CH-1211 GENEVE 23, Switzerland

 find . -maxdepth 1 -type d \! -name "." -exec tar cf {}.tar {} \;
Grazie
Stefano

 > find . -maxdepth 1 -type d \! -name "." -exec tar cf {}.tar {} \;
Trovi in man o nelle FAQs. Comunque:
find .			cerca nella directory corrente "."
-maxdepth 1		non scende nelle subdirectories
-type d			seleziona tutti i files di tipo directory
\! -name "."		de-seleziona "." (che e` in "." e che e` una directory)
-exec tar cf {}.tar {}	gira il comando tar con i vari parametri ({} e` il nome
			del file che e` stato trovato da find)
\;			termina il "-exec"


 e vedi che succede?
ecchecc'ha ragione find ;-)


> \! -name "." de-seleziona "." (che e` in "." e che e` una directory)
credo tu abbia dimenticato di escludere anche la ".."
Ciao

 credo tu abbia dimenticato di escludere anche la ".."
".." non appartiene a "." e quindi "find . -d" non la seleziona...
".." appartiene alla directory parente. Grazie al cielo e` cosi',
altrimenti tutti i find percorrerebbero automaticamente tutto il filesystem ;-)
Provare per credere:
$ cd /tmp
$ mkdir x
$ cd x
$ mkdir a
$ touch b
$ ls -al
drwxr-xr-x   .
drwxrwxrwt   ..
drwxr-xr-x   a
-rw-r--r--   b
$ find . -type d -print
.
./a


 ./a
Grazie..
Stefano

 ".." appartiene alla directory parente. Grazie al cielo e` cosi',
Ciao

 find . -maxdepth 1 -type d \! -name "." -exec tar cf {}.tar {} \;
Posso inserirla nei `tip of the day' per it.comp.os.linux.iniziare?

 filesystem ;-)
Ciao,


 > filesystem ;-)
Allora scusami... non avevo capito...cmq alla fine avevi ragione tu e non ci
avevo mai badato :)
Ciao

> .
Per favore, quota decentemente che sennň non ti si capisce.
Comunque per togliere il "./" puoi fare con cut o con awk.
Il primo č piů veloce da capire ma meno flessibile, il secondo ti fa fare
pure il caffč (ma un pomeriggio ce lo devi perdere).
Trovi degli esempi di cut nei vecchi messaggi di icoli, ad esempio in un
thread a cui abbiamo partecipato, tra gli altri, io e Bodo (io chiedevo e
lui spiegava).
Ciao.


Grazie risolto in questo modo...
dovevo escludere cartelle senza il _ e quelle che non contengono un punto
usate da me come temporanee non importanti, poi col cut ho eliminato il ./
swk non l'ho capito.mi ci dedicherò appena ho tempo... in 15 min ho risolto
con cut
find . -maxdepth 1 -type d \! -name "." \! -name "*_" -name "*.*" |
cut -d"/" -f2
Grazie a tutti
Stefano