shell判断文件是否存在

摘要:
-x"$myPath"];then9.mkdir"$myPath"10.fi11.12.#这里的-d参数判断$myPath是否存在13.if[!-f"$myFile"];then19.touch"$myFile"20.fi21.22.#其他参数还有-n,-n是判断一个变量是否是否有值23.if[!-n"$myVar"];then24.echo"$myVarisempty"25.exit026.fi27.28.#两个变量判断是否相等29.if["$var1"="$var2"];then30.echo'$var1eq$var2'31.else32.echo'$var1noteq$var2'33.fi-efilename如果filename存在,则为真-dfilename如果filename为目录,则为真-ffilename如果filename为常规文件,则为真-Lfilename如果filename为符号链接,则为真-rfilename如果filename可读,则为真-wfilename如果filename可写,则为真-xfilename如果filename可执行,则为真-sfilename如果文件长度不为0,则为真-hfilename如果文件是软链接,则为真filename1-ntfilename2如果filename1比filename2新,则为真。

1. shell判断文件,目录是否存在或者具有权限
2. #!/bin/sh
3.
4. myPath="/var/log/httpd/"
5. myFile="/var /log/httpd/access.log"
6.
7. # 这里的-x 参数判断$myPath是否存在并且是否具有可执行权限
8. if [ ! -x "$myPath"]; then
9. mkdir "$myPath"
10. fi
11.
12. # 这里的-d 参数判断$myPath是否存在
13. if [ ! -d "$myPath"]; then
14. mkdir "$myPath"
15. fi
16.
17. # 这里的-f参数判断$myFile是否存在
18. if [ ! -f "$myFile" ]; then
19. touch "$myFile"
20. fi
21.
22. # 其他参数还有-n,-n是判断一个变量是否是否有值
23. if [ ! -n "$myVar" ]; then
24. echo "$myVar is empty"
25. exit 0
26. fi
27.
28. # 两个变量判断是否相等
29. if [ "$var1" = "$var2" ]; then
30. echo '$var1 eq $var2'
31. else
32. echo '$var1 not eq $var2'
33. fi

-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 如果文件是软链接,则为真
filename1 -nt filename2 如果 filename1比 filename2新,则为真。
filename1 -ot filename2 如果 filename1比 filename2旧,则为真。
[ -x "/bin/ls" ] :判断/bin/ls是否存在并有可执行权限
[ -n "$var" ] :判断$var变量是否有值
[ "$a" = "$b" ] :判断$a和$b是否相等          
   -c file     文件为字符特殊文件为真
  -b file     文件为块特殊文件为真
  -s file     文件大小非0时为真
  -t file     当文件描述符(默认为1)指定的设备为终端时为真 
-eq 等于-ne 不等于
-ne —比较两个参数是否不相等
-lt —参数1是否小于参数2
-le —参数1是否小于等于参数2
-gt —参数1是否大于参数2
-ge —参数1是否大于等于参数2
-f — 检查某文件是否存在(例如,if [ -f "filename" ])
-d — 检查目录是否存在

shell 文件有关的逻辑判断,基本上都包含在下面英文:

Conditional Logic on Files
-a file exists.
-b file exists and is a block special file.
-c file exists and is a character special file.
-d file exists and is a directory.
-e file exists (just the same as -a).
-f file exists and is a regular file.
-g file exists and has its setgid(2) bit set.
-G file exists and has the same group ID as this process.
-k file exists and has its sticky bit set.
-L file exists and is a symbolic link.
-n string length is not zero.
-o Named option is set on.
-O file exists and is owned by the user ID of this process.
-p file exists and is a first in, first out (FIFO) special file or
named pipe.
-r file exists and is readable by the current process.
-s file exists and has a size greater than zero.
-S file exists and is a socket.
-t file descriptor number fildes is open and associated with a
terminal device.
-u file exists and has its setuid(2) bit set.
-w file exists and is writable by the current process.
-x file exists and is executable by the current process.
-z string length is zero.
是用 -s 还是用 -f 这个区别是很大的!

免责声明:文章转载自《shell判断文件是否存在》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Spring Boot Actuator 健康检查、度量、指标收集、监控,一文搞定!CSS设置滚动条样式下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux Shell系列教程之(七)Shell输出

本文是Linux Shell系列教程的第(七)篇,更多shell教程请看:Linux Shell系列教程 与其他语言一样,Shell中也有输出操作,而且在实际应用中也是非常重要的,今天就为大家介绍下Shell输出操作。 Shell echo命令 echo命令是Shell的一个内部指令,用于在屏幕上打印出指定的字符串。 命令格式: echo arg 转...

shell获取帮助

一、內建命令与外部命令## 1.內建命令### 内建命令是 shell 程序的一部分,是一些比较简单的 Linux 系统命令,这些命令是写在bash源码的builtins里面的,由 shell 程序识别并在 shell 程序内部完成运行,通常在 Linux 系统加载运行时 shell 就被加载并驻留在系统内存中。而且解析内部命令 shell 不需要创建子进...

使用shell从DB2数据库导出数据

使用shell脚本根据输入的用户名,数据库名,密码从DB2数据库导出数据 (1)a.sh脚本如下 #!/usr/bin/bash read -p "please input your DBNAME: " DBNAME read -p "please input your username: " username read -p "please inp...

python 快速触发adb 命令, 快速点击

import subprocess import time # 按照次数来点击它 def loop_click_for_android(run_num=30): res = subprocess.Popen('adb devices', shell=True, stdout=subproce...

linux shell中读写操作mysql数据库

本文介绍了如何在shell中读写mysql数据库。主要介绍了如何在shell 中连接mysql数据库,如何在shell中创建数据库,创建表,插入csv文件,读取mysql数据库,导出mysql数据库为xml或html文件, 并分析了核心语句。本文介绍的方法适用于PostgreSQL ,相对mysql而言,shell 中读写PostgreSQL会更简单些。1...

在Win10中通过命令行打开UWP应用

近期由于需要在WinX菜单中添加几个UWP应用,但发现很难找到相应的命令行,Universal Apps的快捷方式属性里也没有。 于是到网上搜了很久才找到一个E文的页面,试了一下确实可行,分享给大家: 在文件夹地址栏输入shell:AppsFolder 找到你要提取命令的APP 在APP上点右键选“创建快捷方式”或直接拖放到桌面,都可以在桌面上创建一个此...