检查文件是否可读可写

检查文件是否可读可写

我正在尝试编写一个脚本,用于查找保存到我桌面的某个 .txt 文件。我希望该脚本能够检查此文件是否存在,然后检查它是否可读写。

有什么提示吗?

答案1

您不需要检查它是否存在,检查读写权限就足够了:

从中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

test -r file.txt -a -w file.txt
echo $?

如果可读可写,则返回码为 0。

答案3

在某些网络协议上,文件权限可能会报告错误,并-r失败。

使用head -c1dd bs=1 count=1检查可读性。

is_readable(){
    head -c1 "$1" > /dev/null 2>&1
    return $?
}

if is_readable "$file"; then
    echo "$file is readable"
else
    echo "$file is not readable"
fi

相关内容