Vérifier un fichier et s'il est lisible et inscriptible

17

J'essaie d'écrire un script qui recherchera un certain fichier .txt enregistré sur mon bureau. Je veux que le script puisse vérifier si ce fichier existe, puis vérifier s'il est lisible et inscriptible.

Des indices?

Justin
la source
lire les expressions conditionnelles Bash dans le manuel et utiliser les opérateurs -ret-w
glenn jackman

Réponses:

28

Vous n'avez pas besoin de vérifier s'il existe, les vérifications des autorisations de lecture et d'écriture sont suffisantes:

De help test, une sélection de tests pertinents:

-a FILE        True if file exists.
-e FILE        True if file exists.
-f FILE        True if file exists and is a regular file.
-r FILE        True if file is readable by you.
-s FILE        True if file exists and is not empty.
-w FILE        True if the file is writable by you.

Vous pouvez donc essayer:

FILE="/path/to/some/file"

if [[ -r $FILE && -w $FILE ]]
then
# do stuff
else
# file is either not readable or writable or both
fi
muru
la source
2
devrait - il pas au if [[ -r $FILE ]] && [[ -w $FILE ]]lieu de if [[ -r $FILE && -w $FILE ]]?
Videonauth
1
@Videonauth voir gnu.org/software/bash/manual/bash.html#Conditional-Constructs , &&etc. sont autorisés dans[[
muru