Kiểm tra một tập tin và liệu nó có thể đọc và ghi được không


17

Tôi đang cố gắng viết một tập lệnh sẽ tìm một tệp .txt nào đó được lưu vào máy tính để bàn của tôi. Tôi muốn tập lệnh có thể kiểm tra xem tập tin này có tồn tại hay không và sau đó kiểm tra xem nó có thể đọc và ghi được không.

Có gợi ý nào không?


đọc biểu thức có điều kiện của Bash trong hướng dẫn và sử dụng các toán tử -r-wtoán tử
glenn jackman

Câu trả lời:


28

Bạn không cần kiểm tra nếu nó tồn tại, kiểm tra quyền đọc và ghi là đủ:

Từ help test, một lựa chọn các bài kiểm tra có liên quan:

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

Vì vậy, bạn có thể thử:

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
không nên if [[ -r $FILE ]] && [[ -w $FILE ]]thay thế if [[ -r $FILE && -w $FILE ]]?
Videonauth

1
@Videonauth xem gnu.org/software/bash/manual/bash.html#Conditable-Constructs , &&v.v. được phép vào[[
muru
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.