shell常用的文件判断运算符如下:

-e 文件是否存在

-f  文件是否是普通文件(不是目录、设备文件、链接文件)

-s  表示文件大小不为0

-d 表示文件是否是目录

-b 表示是块设备(光驱、软盘等)

-c  表示是字符设备(键盘、声卡等)

-p 表示是管道

-h 表示是符号链接

-S 表示是否是socket

-r、-w、-x表示文件是否有可读、可写、可执行权限(指运行这个测试命令的用户)

f1 -nt f2      f1是否比f2新(new than)

f1 -ot f2      f1是否比f2旧(old than)

f1 -ef f2      f1和f2是否是相同文件的硬链接

使用!时表示上述结果取反,由于内容较多,这里不一一列举了。下面一个例子可以作为编程参考

myfile="aa.txt"
if [ ! -f $myfile ]; thenecho $myfile" is not exist"touch $myfile
elseecho $myfile" is exist"
fiif [ ! -s $myfile ]; thenecho "hello, my master" > $myfile
elseecho $myfile" is not null"
fi

转载于:https://www.cnblogs.com/me80/p/7990007.html

shell脚本学习(3)文件判断相关推荐

  1. Shell脚本学习-阶段二

    文章目录-Shell脚本学习阶段二 前言 shell脚本实操2 1.获取随机字符串或数字 2.定义一个颜色输出字符串函数 3.批量创建用户 4.检查软件包是否安装 5.检查服务状态 6.检查主机存活状 ...

  2. linux shell脚本学习

    linux shell脚本学习笔记 文章目录 linux shell脚本学习笔记 一.脚本入门 1.我的第一个linux脚本 2.关于date命令的知识 二.shell脚本中的变量 1.为什么脚本需要 ...

  3. shell 脚本学习笔记

    shell 脚本学习总结: 文件表达式 -e filename 如果 filename存在,则为真 -s file exists and has a size greater than zero. 判 ...

  4. Shell脚本(学习笔记1)

    shell脚本学习记录 为什么学习shell脚本? 在一些复杂的linux维护工作过程中,大量的重复性的输入和交互操作不但费时费力,而且容易出现错误:然而编写shell脚本程序,可以批量处理.自动化的 ...

  5. shell 脚本学习及troubleshooting

    shell 脚本学习及troubleshooting Shell问题一: $ FILENAME="My Document" 含有空格的文件名 $ ls $FILENAME 列出来试 ...

  6. linux定时压缩脚本,使用shell脚本对日志文件进行定时压缩

    系统在服务器上运行时,会产生大量的日志,每天产生的日志量达到几个G,甚至几十个G,这样磁盘空间很快就会满,系统也就挂掉了,所以需要对日志文件进行压缩,压缩之后的日志文件通常只有原文件十分之一,甚至更少 ...

  7. Shell脚本实战之文件批量创建和修改

    Shell脚本实战之文件批量创建和修改 一.脚本要求 二.脚本内容 三.脚本运行结果 一.脚本要求 1.所有操作在/python下 2.批量创建12个以py后缀结尾的文件,文件名中必须包含_hcip, ...

  8. BASH命令和SHELL脚本学习

    BASH命令和SHELL脚本学习 转载于:https://www.cnblogs.com/huolong123/p/6228049.html

  9. shell脚本:实现文件覆盖写入、文件内容追加写入

    文章目录 shell脚本:实现文件覆盖写入.文件内容追加写入 实现说明: 重要代码: 1. 覆盖写文件 ">" 2. 追加写文件">>" sh ...

  10. git bash shell 脚本 :从文件获取git仓库列表 git clone所有仓库

    前言 如果有很多的git 仓库地址,一个个git clone 比较的繁琐,这时可以使用shell 脚本来做这件事情 首先需要把所有的git 仓库的url(地址),放在一个指定的文件内,执行shell脚 ...

最新文章

  1. SQL语言包含4个部分
  2. socket阻塞和非阻塞的区别
  3. ASP.NET Core 依赖注入
  4. linux系统基础与应用,Linux操作系统:基础、原理与应用
  5. MySQL索引的索引长度问题
  6. 说到 SASE,新的安全范式有哪些
  7. underscore.js 源码分析5 基础函数和each函数的使用
  8. DotNet操作Excel汇总
  9. std::set, std::list, std::vector在erase的区别
  10. C++回调函数作为通信机制
  11. (一)数据结构和算法、线性结构
  12. 错误java.lang.NoClassDefFoundError: org/jaxen/VariableContext
  13. 什么是一维表 什么是二维表
  14. Excel如何快速合并相同单元格
  15. 无力吐槽的 create-shortcut .exe
  16. 很多程序员都没搞明白的时间与时区知识 - 24时区/GMT/UTC/DST/CST/ISO8601
  17. 概率密度雅可比行列式
  18. Ubuntu下使用GCC开发STM32的环境的搭建
  19. 【Java系列】数据库系统的可视化界面开发
  20. 前端实现表格中的颜色变化以及不同点击效果

热门文章

  1. 为什么我推荐你立刻使用Java 8 Stream?性能逆天了
  2. 我们决定聚在一起搞大事
  3. 从 0 开始学习 GitHub 电子书免费送
  4. Python 从入门到进阶
  5. 欠薪的公司,不要做任何犹豫!
  6. 免费!吴恩达给你的人工智能第一课
  7. python爬取教务系统_python 爬取 强智科技教务系统(湖南)
  8. office版本都有哪些_文员需要熟练掌握哪些办公软件啊?
  9. BIO,NIO,AIO总结
  10. linux 复 带进度条