Shell 入门教程(十六):如何进行文件判断
文件测试运算符用于检测文件的各种状态和属性,目前支持的运算符如下:
-b file
:是否块设备文件-c file
:是否字符设别文件-d file
:是否目录-f file
:是否普通文件-g file
:文件是否设置了 SGID 位-k file
:是否设置了粘着位-p file
:文件是否有名管道-u file
:文件是否设置了 SUID 位-r file
:文件是否可读-w file
:文件是否可写-x file
:文件是否可执行-s file
:文件是否为空(文件大小是否大于0),不为空返回 true。-e file
:文件(包括目录)是否存在
要特别注意的是-s file
判断文件是否为空时,不为空才返回true。
变量 file 表示文件 /User/chenshuyi/hello.sh
,它的大小为 52 字节,具有 rwx 权限。下面的代码,将检测该文件的各种属性:
#!/bin/bash
# author:陈树义
# site:http://www.shuyi.me
file="/User/chenshuyi/hello.sh"
if [ -r $file ]
then
echo "文件可读"
else
echo "文件不可读"
fi
if [ -w $file ]
then
echo "文件可写"
else
echo "文件不可写"
fi
if [ -x $file ]
then
echo "文件可执行"
else
echo "文件不可执行"
fi
if [ -f $file ]
then
echo "文件为普通文件"
else
echo "文件为特殊文件"
fi
if [ -d $file ]
then
echo "文件是个目录"
else
echo "文件不是个目录"
fi
if [ -s $file ]
then
echo "文件不为空"
else
echo "文件为空"
fi
if [ -e $file ]
then
echo "文件存在"
else
echo "文件不存在"
fi
输出结果为:
文件可读
文件可写
文件可执行
文件为普通文件
文件不是个目录
文件不为空
文件存在

分类:
35. Shell 入门教程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2018-11-01 2018 精选文章集合
2017-11-01 程序员的未来在哪里?
2014-11-01 Servlet的Listener介绍