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

Re: ls un po particolare



* -> 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.

-- 
luca



Reply to: