2010-07-30 4 views
3

J'apprends scriptnig shell, est-il possible que je puisse tester l'opération comme la vérification de l'autorisation de fichier sur un fichier .. comme ... Je sais que certains de la façon comme. recherche dans le fichier grâce à la commande de recherche en utilisant la permission, ou dans "ls ... | grep 'r - r - r' smthg .. quelle permission vous voulezCondition d'essai sur l'autorisation du fichier

J'ai un fichier comment je vérifie si le fichier ont l'autorisation nécessaire ou non ..? \

Merci à l'avance ..

+1

ne comptent pas sur l'analyse de la sortie de 'ls'. Que faire s'il y a un fichier appelé '-r - r - r -'? :) –

+0

c'était juste un exemple ... mais si vous voulez vraiment faire alors. en utilisant awk commadnd vous pouvez vérifier sur le champ requis seulement comme sur la colonne de permission –

+0

ok, mais que faire si l'un des noms de fichiers a une nouvelle ligne intégrée? –

Répondre

4

Vous pouvez faire quelque chose comme:

test pour l'exécution:

if [ -x "$file" ]; then 
    #do_something 
fi 

Test écrit:

if [ -w "$file" ]; then 
    #do_something 
fi 

Test de lecture:

if [ -r "$file" ]; then 
    #do_something 
fi 
+0

Puis-je l'utiliser de cette façon si [-r -w "$ file"]? –

0

Vous pouvez utiliser test

les options -r -x -w tests de lecture, d'exécution et d'écriture. Dans un script shell, la commande de test est généralement entrée comme suit: [

2
stat FILENAME --print=%A 

voir man stat pour plus d'options - vous pouvez vérifier le groupe/propriétaire/etc.

+0

merci c'est ce que j'ai été nécessaire .. mais je ne sais pas ce qui se passe sur mon serveur unix, il est suspendu .. et ne donne pas anykind de sortie. merci de toute façon .. je vais l'essayer sur une autre machine .. –

+0

Cela devrait être la réponse sélectionnée. –

0

Vérifiez les man page of find. sous EXEMPLES. vous pouvez voir comment trouver les fichiers avec l'autorisation désirée.