Sprawdzanie, czy plik jest możliwy do odczytu i zapisu

17

Próbuję napisać skrypt, który będzie szukał określonego pliku .txt zapisanego na pulpicie. Chcę, aby skrypt mógł sprawdzić, czy ten plik istnieje, a następnie sprawdzić, czy można go odczytać i zapisać.

Jakieś wskazówki?

Justin
źródło
przeczytaj Wyrażenia warunkowe Basha w instrukcji i użyj operatorów -ri-w
glenn jackman

Odpowiedzi:

28

Nie musisz sprawdzać, czy istnieje, wystarczy sprawdzenie uprawnień do odczytu i zapisu:

Od help test, wybór odpowiednich testów:

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

Możesz więc spróbować:

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
źródło
2
nie powinno być if [[ -r $FILE ]] && [[ -w $FILE ]]zamiast if [[ -r $FILE && -w $FILE ]]?
Videonauth
1
@Videonauth zobaczyć gnu.org/software/bash/manual/bash.html#Conditional-Constructs , &&etc są dozwolone[[
Muru