Newsgroup: it.comp.os.linux.sys
Titolo: Comando Find, mi corregete la sintassi?

Io ho questo script, che mi legge le cartelle in /media/nas100 (server
win2000) e me le sincronizza in /media/sda1/dati (disco raid locale)
for Y in `find * -mindepth 1 -maxdepth 1` ; do rsync -av
/media/nas100/$Y/ /media/sda1/dati/`echo $Y | tr A-Z a-z`/ ; done
quindi: la cartella /media/nas100/Uffici/Marketing me la sincronizza
con /media/sda1/dati/uffici/marketing
(notare il case sensitive diverso da un server all'altro)
Domanda: questo funziona solo se lo eseguo da /media/nas100... come
faccio a farlo funzionare da qualsiasi posizione?
In quanto se uso `find /media/nas100/* -mindepth 1 -maxdepth 1` mi
restituisce /media/nas100/Uffici/Marketing e non semplicemente
Uffici/Marketing
Al popolo pinguino l'ardua sentenza... ^___________^

 Uffici/Marketing
(UNTESTED)     for Y in `cd /media/nas100; find ...`
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Dept. of Physics, Univ. of Padova, Italy              ROT13: 
ybe...@cq.vasa.vg

Grazie... però in effetti credo di essermi spiegato male, intendevo,
posso fare il find senza fisicamente fare il cd sulla directory?
In quanto per ora ho anteposto alla riga for Y bla bla bla... il
comando cd /media/nas100 (il che porta ad avere lo stesso effetto di
quello che mi consigli tu)
Il problema è (non so perché lo faccia) ma se eseguo lo script dalla
suddetta cartella non sempre funziona, se lo eseguo da home invece
funziona sempre... (il perché per me rimane un mistero)... presumo
(sottolineo presumo) il fatto che /media/nas100 è una cartella montata
da samba, di un server con qualche problema di connessione (a volte è
instabile), quindi vorrei per il più possibile rimanere al di qua
della barricata...
Questo è anche il motivo per cui mi devo tirare fuori tutti i dati
prima di fare un bel format nas100 ;)

 posso fare il find senza fisicamente fare il cd sulla directory?
find /media/nas100 ....
Nel caso poi non ti serva il percorso completo quando fai rsync (cosa
che puoi ovviare sostituendo a /media/nas100/$Y il solo $Y) puoi pensare
di complicarti la vita con cut.
Spero di aver centrato il problema.
Gufo
-- 
  ,___,		 	SYSTEM-INDEPENDENT:
  (9v9)		 Works equally poorly on all systems.
  (_^((\	
-^-"-"-\\-^--	 Remove -me- to reply in email

> cosa che puoi ovviare sostituendo a /media/nas100/$Y il solo $Y
hai centrato si e no, perché poi la seconda parte di rsync mi serve
libera dal percorso completo (mi servono solo le ultime due
directory)... però hai ragione a menzionare il cut, in quanto posso
usare al posto di
rsync -av /media/nas100/$Y/ /media/sda1/dati/`echo $Y | tr A-Z a-z`/
rsync -av $Y/ /media/sda1/dati/`cut la prima parte | echo $Y | tr A-Z
a-z`/
o qualcosa del genere

 faccio a farlo funzionare da qualsiasi posizione?
( cd /media/nas100; find ... )
Le parentesi ti creano un processo separato.
Ciao,
-- 
        Roberto Divia`              Love at first sight is one of the greatest
Dep:PH Bat:53 Mailbox:C02110      labour-saving devices the world has ever seen
Route de Meyrin 385               ---------------------------------------------
Case Postale                                Phone:  
+41-22-767-4994
CH-1211 Geneve 23 CERN                      Fax:    
+41-22-767-9585
Switzerland                                 E-Mail: 
Robert...@cern.ch

Grazie a tutti, questa è la versione che ho usato in definitiva:
for Y in `find /media/nas100/* -mindepth 1 -maxdepth 1` ; do rsync -av
$Y/ /media/sda1/dati/`echo $Y | tr A-Z a-z | cut -c 14-100`/ ; done