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?


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

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.