Проверка наличия файла и возможность его чтения и записи

17

Я пытаюсь написать скрипт, который будет искать определенный файл .txt, сохраненный на моем рабочем столе. Я хочу, чтобы скрипт мог проверить, существует ли этот файл, а затем проверить, доступен ли он для чтения и записи.

Есть намеки?

Джастин
источник
прочитайте в руководстве условные выражения Bash и используйте операторы -rand-w
glenn jackman

Ответы:

28

Вам не нужно проверять, существует ли он, достаточно проверить права на чтение и запись:

От help testвыбора соответствующих тестов:

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

Так что вы можете попробовать:

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
не должно ли быть if [[ -r $FILE ]] && [[ -w $FILE ]]вместо if [[ -r $FILE && -w $FILE ]]?
Видеонавт
1
@Videonauth см gnu.org/software/bash/manual/bash.html#Conditional-Constructs , и &&т.д., допускается[[
Мура