Re: ls un po particolare
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 fabio.marcone@duet.it
Indirizzo Viale B. Croce 573
66013 Chieti Scalo (CH)
GNU/Linux registered user #400424
Reply to: