Verificando um arquivo e se ele é legível e gravável

17

Estou tentando escrever um script que procurará um determinado arquivo .txt salvo na minha área de trabalho. Desejo que o script possa verificar se esse arquivo existe e, em seguida, verifique se é legível e gravável.

Alguma dica?

Justin
fonte
Leia Bash expressões condicionais no manual, e usar o -re -woperadores
Glenn Jackman

Respostas:

28

Você não precisa verificar se existe, as verificações de permissões de leitura e gravação são suficientes:

A partir de help test, uma seleção de testes relevantes:

-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.

Então você pode tentar:

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
fonte
2
não deveria ser em if [[ -r $FILE ]] && [[ -w $FILE ]]vez de if [[ -r $FILE && -w $FILE ]]?
Videonauth 27/11
1
@Videonauth, consulte gnu.org/software/bash/manual/bash.html#Conditional-Constructs , &&etc , são permitidos em #[[
muru