OVH Cloud OVH Cloud

donner le nom et groupe d'un fichier

5 réponses
Avatar
vincent.verdon
Bonjour et bonne années à tous les utilisateurs de ce groupe.

Je cherche une commande qui me fournirait le nom et/ou le groupe auquel
appartient un nom de fichier donné en argument.
Il y a bien ls -l qui envoie cela :
-rw-r--r-- 1 root root 771 2005-08-31 23:36 /etc/fstab
Mais il faut ensuite trier. Avec quelle commande faire cela ?

D'une manière générale, existe-t-il une commande pour avoir des infos
sur un fichier (à la manière de la commande file dans Tcl) ?

Amicalement, Vincent Verdon

5 réponses

Avatar
Stephane Chazelas
2006-01-10, 22:55(+01), :
Bonjour et bonne années à tous les utilisateurs de ce groupe.

Je cherche une commande qui me fournirait le nom et/ou le groupe auquel
appartient un nom de fichier donné en argument.
Il y a bien ls -l qui envoie cela :
-rw-r--r-- 1 root root 771 2005-08-31 23:36 /etc/fstab
Mais il faut ensuite trier. Avec quelle commande faire cela ?

D'une manière générale, existe-t-il une commande pour avoir des infos
sur un fichier (à la manière de la commande file dans Tcl) ?
[...]


Tu as des commandes "stat", mais ce n'est pas standardisé (il y
a un "stat" de GNU, de BSD, builtin dans zsh... toutes avec des
syntaxes differentes).

L'option -printf de GNU find permet d'avoir ce genre
d'indication.

Sinon, on peut utiliser perl/expect/tclsh/python/ruby... et leur
stat respectif.

Pour parser le resultat de ls:

set -f
set -- $(ls -ld -- "$file")
user=$3 group=$4

mais ca suppose que ni le nom d'utilisateur, ni le nom de groupe
ne contiennent de blanc. Il peut y avoir aussi des problemes si
certains champs sont collés (par exemple si le nombre de liens
est tres grand) avec certaines implementations de ls. Voir aussi
les problems de certains ls pour qui il faut l'option -g pour
avoir le groupe.

--
Stéphane

Avatar
Pascal Bourguignon
"" writes:

Bonjour et bonne années à tous les utilisateurs de ce groupe.

Je cherche une commande qui me fournirait le nom et/ou le groupe
auquel appartient un nom de fichier donné en argument.
Il y a bien ls -l qui envoie cela :
-rw-r--r-- 1 root root 771 2005-08-31 23:36 /etc/fstab
Mais il faut ensuite trier. Avec quelle commande faire cela ?

D'une manière générale, existe-t-il une commande pour avoir des infos
sur un fichier (à la manière de la commande file dans Tcl) ?


% stat -c '%u %g (%U %G)' /usr/local/html
200 210 (local localweb)


--
__Pascal Bourguignon__ http://www.informatimago.com/

"Logiciels libres : nourris au code source sans farine animale."

Avatar
vincent.verdon
stat me convient très bien, merci !
Mais j'avoue ma curiosité pour la syntaxe de l'autre méthode décrite !




Tu as des commandes "stat", mais ce n'est pas standardisé (il y

Pour parser le resultat de ls:

set -f
set -- $(ls -ld -- "$file")
user=$3 group=$4



Avatar
Bruno-L

Il y a bien ls -l qui envoie cela :
-rw-r--r-- 1 root root 771 2005-08-31 23:36 /etc/fstab
Mais il faut ensuite trier. Avec quelle commande faire cela ?


ls -l | awk '{print ($3,$4)}'

Amicalement, Vincent Verdon


Bonne journée


--
Bruno <http://bluesilk.be>

Avatar
Stephane Chazelas
On Wed, 11 Jan 2006 00:08:31 +0100, Pascal Bourguignon wrote:
[...]
D'une manière générale, existe-t-il une commande pour avoir des infos
sur un fichier (à la manière de la commande file dans Tcl) ?


% stat -c '%u %g (%U %G)' /usr/local/html
200 210 (local localweb)
[...]


Qui ne marchera que sur des systemes GNU recents avec des shells
qui n'ont pas leur propre "stat" builtin, note.

--
Stephane