shell入门(7)——文件判断操作

文件判断操作

shell中有专门对文件的状态属性进行判断的测试运算符,主要有以下几个

  • -b file:是否为块设备文件
  • -c file:是否为字符设别文件
  • -d file:是否为目录
  • -f file:是否为普通文件
  • -g file:文件是否设置了 SGID 位
  • -k file:是否设置了粘着位(Sticky Bit)
  • -p file:文件是否为有名管道
  • -u file:文件是否设置了SUID 位
  • -r file:文件是否可读
  • -w file:文件是否可写
  • -x file:文件是否可执行
  • -s file:文件是否为空(文件大小是否大于0),不为空返回 true。
  • -e file:文件(包括目录)是否存在

概念解释

  1. 块设备文件
    Block Device Driver称为块设备,是以固定大小长度来传送资料,可以进行随机存取资料的设备,块设备文件是供块设备读取的文件,常见的块设备有硬碟机(硬盘)或光碟机等

  2. 字符设备文件
    Character Device Drive称为字符设备,是以不定长度的字元传送资料的,按先后顺序读取资料的设备,字符设备文件是供字符设备读取的文件,常见的字符设备有打印机,显示器等

  3. 有名管道(FIFO)

有名管道是持久稳定的它们存在于文件系统中,能让无关联的进程之间交换数据,是Linux进程间通信的一种

  1. SGID位
    Set GIDd的简称,g出现在文件所属组权限的执行位上面,它对普通二进制文件和目录都有效。当它作用于普通文件时,和SUID类似,在执行该文件时,用户将获得该文件所属组的权限。当SGID作用于目录时,意义就非常重大了。当用户对某一目录有写和执行权限时,该用户就可以在该目录下建立文件,如果该目录用SGID修饰,则该用户在这个目录下建立的文件都是属于这个目录所属的组。

  2. SUID位
    Set UID的简称,s出现在文件拥有者权限的执行位上,具有这种权限的文件会在其执行时,使调用者暂时获得该文件拥有者的权限

  3. 粘着位
    SBIT是Sticky Bit的简称,出现在其他用户权限的执行位上,它只能用来修饰一个目录。当某一个目录拥有SBIT权限时,则任何一个能够在这个目录下建立文件的用户,该用户在这个目录下所建立的文件,只有该用户自己和root可以删除,其他用户均不可以。

使用案例

#!/bin/bash

file="/usr/xiao/myshell/case.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
结果输出
文件可读
文件可写
文件可执行
文件为普通文件
文件不是个目录
文件不为空
文件存
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值