2017-10-14 1 views
1

J'ai une requête très spécifique. J'ai un répertoire avec beaucoup de fichiers, tous avec des autorisations variables.UNIX - grep files based on permission

Je veux identifier tous les fichiers que n'importe quel utilisateur (groupe d'utilisateurs autre) peut lire, mais j'ai besoin d'utiliser grep. (Je sais qu'il existe de meilleurs moyens que grep mais il s'agit d'une requête spéciale)

Mon nom de répertoire est testfiles. Je pense aux lignes suivantes:

ls /testfiles | grep -E <<insert more>> 

Quelqu'un peut-il me conseiller?

+0

Si vous avez accès à GNU find, jetez un oeil à l'option '-perm'. – Cyrus

+0

Malheureusement, je n'ai pas accès à cela et perm ne fonctionne pas dans mon environnement. – DaveMac001

+0

[Pourquoi * not * parse 'ls'?] (Https://unix.stackexchange.com/questions/128985/why-not-parse-ls) – Cyrus

Répondre

1
ls -l testfiles | grep "^.r..r..r" 

Dans les autorisations, vérifiez si l'utilisateur, le groupe et tous les autres ont l'autorisation Read (r) ou non.

1

Vous pouvez utiliser ceci. As. - point représente un seul caractère

ls -l /testfiles | grep -E "^.r..r..r.."