文件、目录属性判断

简介:

接收用户的输入
read -t 30 -p "please input a number." n //-t为时间30秒

1.[ -f file ]判断是否是普通文件,且存在为真
[root@localhost shell]# f="./if01.sh"
[root@localhost shell]# [ -f $f ]&&echo ok || echo no
ok

[root@localhost ~]# vi file01.sh
#!/bin/bash
f="/tmp/lsxlinux"
if [ -f $f ]
then
echo $f exist
else
touch $f
fi

[root@localhost ~]# bash -x file01.sh //-x查看执行的步骤

  • f=/tmp/lsxlinux
  • '[' -f /tmp/lsxlinux ']'
  • touch /tmp/lsxlinux
    [root@localhost ~]# bash -x file01.sh
  • f=/tmp/lsxlinux
  • '[' -f /tmp/lsxlinux ']'
  • echo /tmp/lsxlinux exist
    /tmp/lsxlinux exist

2.[ -d file ] 判断是否是目录,且存在为真
[root@localhost shell]# [ -d ./lsx ] && echo ok || echo no
no

#!/bin/bash
d="/tmp/lsxlinux"
if [ -d $d ]
then
echo $d exist
else
touch $d
Fi

[root@localhost ~]# bash -x file02.sh

  • f=/tmp/lsxlinux
  • '[' -d /tmp/lsxlinux ']'
  • touch /tmp/lsxlinux

3.[ -e file ] 判断文件或目录存在为真,不辨明是目录还是文件
[root@localhost shell]# if [ -e ./lsx ];then echo exists;else echo on;fi //目录不存在
on
[root@localhost shell]# if [ -e ./if03.sh ];then echo exists;else echo on;fi //文件存在
exists
[root@lr shell]# [ -e if09.sh ]&&echo ok||echo no
no

4.[ -r file ] 判断文件存在且可读为真
#!/bin/bash
f="/tmp/lsxlinux"
if [ -r $f ]
then
echo $f read
fi

[root@localhost ~]# bash -x file02.sh

  • f=/tmp/lsxlinux
  • '[' -r /tmp/lsxlinux ']'
  • echo /tmp/lsxlinux read
    /tmp/lsxlinux read

5.[ -w file ] 判断文件存在且可写为真
#!/bin/bash
f="/tmp/lsxlinux"
if [ -w $f ]
then
echo $f write
fi

[root@localhost ~]# bash -x file02.sh

  • f=/tmp/lsxlinux
  • '[' -w /tmp/lsxlinux ']'
  • echo /tmp/lsxlinux write
    /tmp/lsxlinux write
  1. [ -x file ] 判断文件存在且可执行为真
    #!/bin/bash
    f="/tmp/lsxlinux"
    if [ -x $f ]
    then
    echo $f exe
    fi

[root@localhost ~]# bash -x file02.sh

  • f=/tmp/lsxlinux
  • '[' -x /tmp/lsxlinux ']'

##判断存在的情况
#!/bin/bash
f="/tmp/lsxlinux"
[ -f $f ] && rm -f $f
#if [ -f $f ]
#then

rm -f $f

#fi

//判断不存在
#!/bin/bash
f="/tmp/lsxlinux"
[ -f $f ] && touch $f
if [ ! -f $f ]
then
touch $f
fi




本文转自 虾米的春天 51CTO博客,原文链接:http://blog.51cto.com/lsxme/2058289,如需转载请自行联系原作者

相关文章
|
Windows
解决 在配置文件列表中找不到你的默认配置文件-使用第一个配置文件。请进行检查以确保 "defaultProfile" 与你的某个配置文件的 GUID 相匹配
不用 “netsh winsock reset” 命令解决 “在配置文件列表中找不到你的默认配置文件-使用第一个配置文件。请进行检查以确保 "defaultProfile" 与你的某个配置文件的 GUID 相匹配”
解决 在配置文件列表中找不到你的默认配置文件-使用第一个配置文件。请进行检查以确保 "defaultProfile" 与你的某个配置文件的 GUID 相匹配
|
1月前
如何批量重命名,把文件(夹)名的内容位置调整(前后移动)
该文介绍了如何使用一个工具批量修改文件名,将"中文[数字]"格式改为"中文 - 数字"。首先,从提供的百度网盘或蓝奏云链接下载工具,使用提取码获取。接着,在工具中选择文件批量复制模块,通过拖放或导入按钮添加文件或文件夹。然后,设置两个规则:一个提取中文(2个字符),另一个提取数字(20个字符)。预览无误后,选择方案3,以自定义内容("规则1 空格-空格 规则2")重命名,并确保关联到之前创建的规则。最后,执行重命名操作,查看结果,文件名应已按预期更改。
|
1月前
|
Java
怎样查找某个目录下内容含有某个字符串的文件
怎样查找某个目录下内容含有某个字符串的文件
15 2
|
1月前
|
Java
怎样查找某个目录下内容含有某个字符串的文件或多久之前的文件
怎样查找某个目录下内容含有某个字符串的文件或多久之前的文件
14 0
|
1月前
|
弹性计算 运维 Shell
判断文件或目录是否存在
【4月更文挑战第29天】
23 0
|
1月前
|
弹性计算 运维 Shell
|
10月前
|
Unix Shell Linux
Python文件的属性获取,重命名,目录的创建,显示和改变
Python文件的属性获取,重命名,目录的创建,显示和改变
77 0
|
网络协议 测试技术 Go
判断文件或目录存在 | 学习笔记
快速学习判断文件或目录存在
113 0
C#编程-18:遍历某一路径下所有文件和文件夹
C#编程-18:遍历某一路径下所有文件和文件夹
465 0