web-dev-qa-db-fra.com

que signifie -x dans une instruction conditionnelle?

Que signifie -x ici?

if [ -x /etc/rc.local ] then

Comment pourrais-je trouver cette page de manuel pour if?

20
taymindis Woon

Dans les pages man bash (en particulier la section CONDITIONAL EXPRESSIONS):

   -a file
          True if file exists.
   -b file
          True if file exists and is a block special file.
   -c file
          True if file exists and is a character special file.
   -d file
          True if file exists and is a directory.
   -e file
          True if file exists.
   -f file
          True if file exists and is a regular file.
   -g file
          True if file exists and is set-group-id.
   -h file
          True if file exists and is a symbolic link.
   -k file
          True if file exists and its ``sticky'' bit is set.
   -p file
          True if file exists and is a named pipe (FIFO).
   -r file
          True if file exists and is readable.
   -s file
          True if file exists and has a size greater than zero.
   -t fd  True if file descriptor fd is open and refers to a terminal.
   -u file
          True if file exists and its set-user-id bit is set.
   -w file
          True if file exists and is writable.
   -x file
          True if file exists and is executable.

   [...]
26
Sylvain Pineau

if est un mot-clé du shell, vous pouvez donc trouver des informations à ce sujet avec help if. if se branche uniquement selon que la commande suivante renvoie true (0) ou false (et non zéro). Cependant, ce que vous voulez vraiment, c'est man [ ou man test, où [ est un alias pour test. Cette instruction est en train d'exécuter test -x /etc/rc.local, qui teste si ce fichier existe et est exécutable (ou dispose de l'autorisation de recherche).

12
psusi

De info test:

`-x FILE'
    True if FILE exists and execute permission is granted (or search permission, if it is a directory).

Une autorisation d’exécution est nécessaire sur un répertoire pour pouvoir y être insérée (c’est-à-dire pour en faire un répertoire de travail courant).

L'exécution est nécessaire sur un répertoire pour accéder aux informations "inode" des fichiers qu'il contient. Vous en avez besoin pour rechercher un répertoire afin de lire les inodes des fichiers qu’il contient. Pour cette raison, l'autorisation d'exécution sur un répertoire est souvent appelée autorisation de recherche.

4
girardengo