ตรวจสอบไฟล์และดูว่าสามารถอ่านและเขียนได้หรือไม่


17

ฉันพยายามเขียนสคริปต์ที่จะค้นหาไฟล์. txt บางไฟล์ที่บันทึกไว้บนเดสก์ท็อปของฉัน ฉันต้องการให้สคริปต์สามารถตรวจสอบว่ามีไฟล์นี้อยู่หรือไม่จากนั้นตรวจสอบเพื่อดูว่าสามารถอ่านและเขียนได้หรือไม่

คำใบ้ใด ๆ


อ่านBash Conditional Expressionsในคู่มือและใช้งาน-rและ-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 ]]?
Videonauth

1
@Videonauth ดูgnu.org/software/bash/manual/bash.html#Conditional-Constructsและ&&อื่น ๆ ที่ได้รับอนุญาตใน[[
muru
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.