文件运算符

 文件运算符  描述
-b file  检测 file 是否为块设备文件
-c file  检测 file 是否为字符设备文件 
-d file  检测 file 是否为目录
-e file  检测 file 是否存在
-f file  检测 file 是否存在为普通文件
-r file  检测 file 是否可读
-s file  检测 file 是否为空文件
-w file  检测 file 是否可写
-x file  检测 file 是否可执行
-L file  检测 file 是否符号链接

实例

a) 检测 /dev/sr0 是否为块设备文件。

f="/dev/sr0"
if [ -b "$f" ]
then
echo "${f} is a block (buffered) special file."
else
echo "${f} is not a block (buffered) special file."
fi

b) 检测 /dev/null 是否为字符设备文件。

f="/dev/null"
if [ -c "$f" ]
then
echo "${file} is a character (unbuffered) special file."
else
echo "${file} is not a character (unbuffered) special file."
fi

c) 检测 /etc 是否为目录。

f="/etc"
if [ -d "$f" ]
then
echo "${file} is a directory."
else
echo "${file} is not a directory."
fi

d) 检测 /etc/passwd 是否为普通文件。

f="/etc/passwd"
if [ -f "$f" ]
then
echo "${file} is a regular file."
else
echo "${file} is not a regular file."
fi

e) 检测 /bin/mail 是否为符合链接。

f="/bin/mail"
if [ -L "$f" ]
then
echo "${file} is a symbolic link."
else
echo "${file} is not a symbolic link."
fi

f) 检测 /etc/passwd 是否可读。

f="/etc/passwd"
if [ -r "$f" ]
then
echo "${file} is readable."
else
echo "${file} is not readable."
fi

g) 检测 /etc/passwd 是否可写。

f="/etc/passwd"
if [ -w "$f" ]
then
echo "${file} is writable."
else
echo "${file} is not writable."
fi

h) 检测 /etc/passwd 是否可执行。

f="/etc/passwd"
if [ -x "$f" ]
then
echo "${file} is executable."
else
echo "${file} is not executable."
fi

i) 检测 /etc/passwd 是否存在。

f="/etc/passwd"
if [ -e "$f" ]
then
echo "${file} is existent."
else
echo "${file} is nonexistent."
fi

j) 检测 /etc/passwd 是否为空。

f="/etc/passwd"
if [ -s "$f" ]
then
echo "${file} is empty."
else
echo "${file} is not empty."
fi

Shell - 文件运算符的更多相关文章

  1. (转)Shell——基本运算符

    Shell 基本运算符 原文:http://blog.csdn.net/sinat_36053757/article/details/70319481 Shell 和其他编程语言一样,支持多种运算符, ...

  2. 五、Shell 基本运算符

    Shell 基本运算符 Shell 和其他编程语言一样,支持多种运算符,包括: 算数运算符 关系运算符 布尔运算符 字符串运算符 文件测试运算符 原生bash不支持简单的数学运算,但是可以通过其他命令 ...

  3. Shell文件权限和脚本执行

    一.预备知识 1.shell的作用   2.常识 (1)Tab键自动补全   使用Terminal时,输入命令的前几个字母,敲tab会自动补全命令或文件名.目录等. 好处:操作速度更快:不容易出错: ...

  4. Linux Shell系列教程之(十七) Shell文件包含

    本文是Linux Shell系列教程的第(十七)篇,更多Linux Shell教程请看:Linux Shell系列教程 通过文件包含,可以引用其他文件的内容,也可以将复杂内容分开,使程序结构更加清晰. ...

  5. 轻松学习Linux之Shell文件和目录属性详解

    轻松学习Linux之Shell文件和目录属性详解 轻松学习Linux之理解Sitcky 轻松学习Linux之理解umask 轻松学习Linux之理解SUID&SGUID 本系列多媒体教程已完成 ...

  6. Shell 文件包含

    和其他语言一样,Shell 也可以包含外部脚本.这样可以很方便的封装一些公用的代码作为一个独立的文件. Shell 文件包含的语法格式如下: . filename # 注意点号(.)和文件名中间有一空 ...

  7. Python第一天 安装 shell 文件

    Python第一天  安装  shell  文件 python里面一切都是对象 object 代码缩进:建议用四个空格来缩进,不要用tab键 安装 Linux自带python,windows需要下载m ...

  8. 用shell脚本新建shell文件并自动生成头说明信息

    目标: 新建文件后,直接给文件写入下图信息 代码实现: [root@localhost test]# vi AutoHead.sh #!/bin/bash#此程序的功能是新建shell文件并自动生成头 ...

  9. makefile 和shell文件相互调用

    shell 文件内调用makefile文件:   #!/bin/bash cd ctemplate-2.1./configuresudo make -f installcd ../cd Templat ...

随机推荐

  1. BZOJ 3563 DZY Loves Chinese

    Description 神校XJ之学霸兮,Dzy皇考曰JC. 摄提贞于孟陬兮,惟庚寅Dzy以降. 纷Dzy既有此内美兮,又重之以修能. 遂降临于OI界,欲以神力而凌♂辱众生. 今Dzy有一魞歄图,其上 ...

  2. 通过Delphi获得qq安装路径

    procedure TForm1.Button2Click(Sender: TObject); var Reg:TRegistry; Val:TStrings; ii:System.Integer; ...

  3. bzoj2007

    首先不难发现海拔高度只能为0或1 因为决策是单调的 不难发现最优决策一定是划分为海拔为0和1两块,不会出现01相间的情况 所以这很明显是一个最小割 由于n*n很大,我们必须要用平面图最小割转化为最短路 ...

  4. HDU 5920 Ugly Problem 【模拟】 (2016中国大学生程序设计竞赛(长春))

    Ugly Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Tota ...

  5. Linux学习笔记28——消息队列

    一 关于消息队列 消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法,而且,每个数据块都被认为含有一个类型,接收进程可以独立地接受含有不同类型值的数据块.可以通过发送消息来几乎完全避免命名管 ...

  6. 【转】unity3d input输入

    Input 输入 按键 Input.GetKey(“up”) = Input.GetKey(KeyCode.UpArrow) 按住键盘上键 Input.GetKeyDown (“up”) 按下键盘上键 ...

  7. winform datetimepacker 开始日期 结束日期 分类: WinForm 2014-07-15 19:14 124人阅读 评论(0) 收藏

    dtpStart;//开始日期 dtpEnd;//结束日期 1:开始日期小于结束日期 加载dtpEnd的ValueChanged事件即可. //开始日期小于结束日期         private v ...

  8. char* 和char[]的差别

    下面内容均来自互联网,系笔者汇总并总结. 1. 问题介绍 问题引入: 在实习过程中发现了一个曾经一直默认的错误,相同char *c = "abc"和char c[]="a ...

  9. android 15 activity跳转

    从一个屏幕跳到另一个屏幕,一个activity跳转到另一个activity,Intent类用于组件之间传递数据和跳转,组件包括不仅activity. package com.sxt.day04_01; ...

  10. change buffer

    https://yq.aliyun.com/articles/222 change buffer: insert buffer delete buffer purge buffer 1.innodb_ ...