Ü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?


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

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.