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?


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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.