Shell中文件操作

本文介绍了Shell脚本中用于检查文件存在、属性、内容以及文件夹状态的命令,如`-e`, `-d`, `-f`, `-L`, `-r`, `-w`, `-x`, `-s`, `-h`等。此外,还展示了如何使用`grep`查找文件中的字符串,并通过`/dev/null`处理输出。同时提供了创建、检查和删除文件的示例,确保文件或文件夹管理的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、判断文件是否存在

  • -e filename 如果 filename存在,则为真
  • -d filename 如果 filename为目录,则为真
  • -f filename 如果 filename为常规文件,则为真
  • -L filename 如果 filename为符号链接,则为真
  • -r filename 如果 filename可读,则为真
  • -w filename 如果 filename可写,则为真
  • -x filename 如果 filename可执行,则为真
  • -s filename 如果文件长度不为0,则为真
  • -h filename 如果文件是软链接,则为真
  • -O 判断对象是否存在,并且属于当前用户
  • -G 判断对象是否存在,并且属于当前用户组
  • -nt 判断file1是否比file2新 [ “/data/file1” -nt “/data/file2” ]
  • -ot 判断file1是否比file2旧 [ “/data/file1” -ot “/data/file2” ]

二、判断文件中是否存在字符串

if cat filename | grep “message” > /dev/null
then
XXX
else(不存在)
XXX
fi

知识点: /dev/null用途
/dev/null 通常被用于丢弃不需要的输出流,或作为用于输入流的空文件,这些操作通常由重定向完成,任何你想丢弃的数据都可以写入其中

三、Shell中判断文件夹或文件是否存在

3.1 文件夹不存在

if [ ! -d "/data/" ];then
  mkdir /data
else
  echo "文件夹已经存在"
fi

3.2 文件夹存在

if [ -d "/data/" ];then
  echo "文件夹存在"
else
  echo "文件夹不存在"
fi

3.3 文件不存在

if [ ! -f "/data/file" ];then
  echo "文件不存在"
else
  rm -f /data/file
fi

3.4 文件存在

if [ -f "/data/filename" ];then
  echo "文件存在"
else
  echo "文件不存在"
fi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值