[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: