luca suriano wrote:
> * -> 13:52:22 (Monday 25 September 2006)
> * -> "Fabio Marcone" wrote:
> 
>> ciao a tutti,
>> ho necessità di fare un ls ricorsivo  a partire da una directory e avere
>> in output solo i file il cui owner è un certo user.
>>
>> voi direte: basta ls -R /path | grep user
>>
>> in realtà non è cosi poichè in output ho bisogno del path completo dei
>> file, non solo il nome (in tal modo posso fare un chown su tali file).
>>
>> il mio obiettivo finale è impostare, da una certa directory in poi,
>> l'owner pluto per tutti i file con owner pippo.
>>
>> mi viene in mente una combinazione di ls -alR, grep, awk e chown ma sono
>> bloccato sul fatto che ls non restituisce il path completo dei file.
>>
>> Qualcuno mi può dare una mano?
> 
> Si.
> 
> $ cat -n cerca-ricorsivo.sh 
>      1  #! /bin/bash
>      2
>      3  function Cerca() {
>      4          for file in `ls .`
>      5          do
>      6                  if [ `stat -c %G $file` == cdrom ]
>      7                  then
>      8                             chown luka.luka $file
>      9                  fi
>     10
>     11                  if [ -d "$file" ]
>     12                  then
>     13                          cd $file
>     14                          Cerca
>     15                          cd ..
>     16                  fi
>     17          done
>     18  }
>     19
>     20  Cerca 
> 
> 
> La funzione simula un ls -R, quindi agisce su
> tutte le directory e sub-directory, ricorsivamente,
> appunto.
> 
> Nella riga 6 definisco il gruppo da cercare,
>       ovviamente sostituisci cdrom con cio'
>       che ti serve.
> 
> Nella riga 8 c'e' il comando, anche in questo
> caso inserisci cio' che ti serve.
> 
> Dalla riga 11 alla 16, se incontra una directory
> vi entra e ricomincia.
> 
> Vai tranquillo che funge, fammi sapere.
> 
grazie a tutti,
ho risolto utilizzando:
chown newuser `find /dir -user olduser`

mi sembra il modo più compatto (lo devo richiamare da uno script python).

fabio

-- 

Dott. Fabio Marcone

2T srl
Telefono                                +39 - 0871- 540154
Fax                                     +39 - 0871- 571594
Email                                   [EMAIL PROTECTED]       
Indirizzo                               Viale B. Croce 573
                                        66013 Chieti Scalo (CH)
GNU/Linux registered user               #400424


-- 
Per REVOCARE l'iscrizione alla lista, inviare un email a 
[EMAIL PROTECTED] con oggetto "unsubscribe". Per
problemi inviare un email in INGLESE a [EMAIL PROTECTED]

To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Rispondere a