Je souhaite obtenir la liste de tous les fichiers de mon dossier de départ, avec les autorisations rwx
(lecture-écriture-exécution) ou 777 pour tout le monde.
En outre, quelle est la commande pour connaître les autorisations d'un fichier?
Le terminal s'ouvre dans votre répertoire personnel par défaut. Partout ailleurs, tapez cd ~
pour revenir au répertoire principal.
ls -l
vous montrera les autorisations de fichier au début, par exemple.
-rwxr-xr-x 1 izx izx 11217428 Oct 2 2011 wkhtmltoimage-AMD64
Vous pouvez ensuite filtrer avec grep pour obtenir le résultat souhaité:
ls -l | grep -P ".{7}rwx.*"
rwx
qui dans mon répertoire personnel montre:
- rwxrwxrwx 1 izx izx 0 juin 15 23:42 sd.png - rwxrwxrwx 1 izx izx 0 juin 15 23:42 slashdot.png drwxrwxrwx 3 izx izx 4096 juin 15 21:31 src
Dans votre répertoire personnel, tapez find . -perm -a+rwx
rwx
de tous; les résultats seront affichés avec des chemins relatifs complets, par ex../. mozilla/firefox/lr5z24b3.default/lock ./src ./ src/accountsservice-0.6.15/src/libaccountsservice/.libs/libaccountsservice.so ./ src/accountsservice-0.6.15/src/libaccountsservice/.libs/libaccountsservice.la ./ src/accountsservice-0.6.15/src/libaccountsservice/.libs/libaccountsservice.so.0 ./ src/accountsservice-0.6.15/debian/libaccountsservice-dev/usr/lib/libaccountsservice.so ./ src/accountsservice-0.6.15/debian/libaccountsservice0/usr/lib/libaccountsservice.so.0 ./ src/accountsservice-0.6.15/debian/tmp/usr/lib/libaccountsservice.so ./ src/accountsservice-0.6.15/debian/tmp/usr/lib/libaccountsservice.so.0 ./. Pulse/676238f89edd1f57138b3da400000004-runtime ./sd.png./slashdot.png ./ XnView/lib/libQtGui.so.4 ./ XnView/lib/libQtWebKit.so.4 ./ XnView/lib/libQtXml.so.4 ./ XnView/lib/libQtDBus.so.4 ./ XnView/lib/libQtNetwork.so.4 ./ XnView/lib/libQtCore.so.4 ./ XnView/lib/libQtSvg.so.4
Les entrées en gras dans le répertoire personnel sont également apparues dans la première méthode.
Pour plus de façons d'utiliser find
pour accomplir ce que vous voulez, veuillez vous reporter à réponse d'Eliah Kagan juste au-dessus ou en dessous de celui-ci.
En général, vous utiliseriez la commande ls
pour connaître les autorisations des fichiers. Mais pour une tâche spécifique, pour laquelle vous souhaitez répertorier automatiquement les fichiers dotés de certaines autorisations, l'utilisation de ls
, même si vous filtrez la sortie avec un autre utilitaire tel que grep
, deviendra rapidement très complexe à effectuer correctement. Donc, pour de telles tâches, il vaut mieux utiliser find
.
Si vous voulez lister tous les fichiers qui sont ...
contenait n'importe où dans votre répertoire personnel (y compris dans les sous-répertoires de votre répertoire personnel, les sous-répertoires de ces sous-répertoires, etc.), et
qui sont aussi explicitement lisibles, inscriptibles et exécutables par tout le monde
... alors cette commande le fera pour vous:
_find ~ -perm 777
_
C'est vraiment aussi simple que cela.
Si vous souhaitez uniquement répertorier les fichiers répondant aux deux conditions ci-dessus et résidant directement dans le répertoire de base (et non dans un sous-répertoire), utilisez plutôt la commande suivante:
_find ~ -maxdepth 1 -perm 777
_
Dans ce cas, _777
_ indiquera les fichiers lisibles, inscriptibles et exécutables pour vous, votre groupe et tous les autres. Si certains fichiers peuvent avoir des ensembles d'autorisations étranges, tels que 477 (vous pouvez lire le fichier et tout le monde peut exécuter et écrire le fichier), vous voudrez probablement utiliser:
_find ~ -maxdepth 1 -perm -o+rwx
_
Le trait d'union précédant _-o+rwx
_ signifie que le fichier peut avoir d'autres autorisations, et _o+rwx
_ signifie que autres (en dehors du groupe et de l'utilisateur propriétaire de ce fichier) peut lire, écrire et exécuter ce fichier sans vérifier aucune autre autorisation.
Voir man find
pour plus d'informations sur la manière d'effectuer ces opérations et des opérations similaires, et man chmod
pour connaître la signification de _777
_ et d'autres modes numériques. .
Accédez au répertoire dans lequel vous souhaitez connaître les autorisations du fichier à l'aide de la commande:
cd "Directory"
Remplacez le texte entre guillemets par le nom de répertoire dont vous avez besoin.
Puis entrez une autre commande:
ls -l
Cette commande (ls
) est généralement utilisée pour obtenir les noms de fichier. L'argument -l
donne des informations complètes sur les fichiers.
Ainsi, vous pourrez également voir les autorisations de fichiers.