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: