Überprüfen, ob eine Datei lesbar und beschreibbar ist

17

Ich versuche ein Skript zu schreiben, das nach einer bestimmten .txt-Datei sucht, die auf meinem Desktop gespeichert ist. Ich möchte, dass das Skript überprüfen kann, ob diese Datei vorhanden ist, und dann prüft, ob sie lesbar und beschreibbar ist.

Irgendwelche Hinweise?

Justin
quelle
Lesen Sie die Bash-Bedingungsausdrücke im Handbuch und verwenden Sie die Operatoren -rund-w
Glenn Jackman

Antworten:

28

Sie müssen nicht überprüfen, ob es existiert. Die Überprüfungen auf Lese- und Schreibberechtigungen reichen aus:

Aus help testeiner Auswahl relevanter Tests:

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

So können Sie versuchen:

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
quelle
2
sollte es nicht if [[ -r $FILE ]] && [[ -w $FILE ]]statt sein if [[ -r $FILE && -w $FILE ]]?
Videonauth
1
@Videonauth siehe gnu.org/software/bash/manual/bash.html#Conditional-Constructs , &&sind usw. erlaubt in[[
muru