Linux中判断文件和目录是否存在的shell命令总结

 更新时间:2025年11月10日 10:01:02   作者:ALex_zry  
这篇文章主要为大家详细介绍了Linux中判断文件和目录是否存在的相关shell命令,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

本文主要介绍了Linux 中 使用 shell 判断文件、目录是否存在的方法,分享给大家

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

常用例子

如果存在某文件,则删除

if [ -f $filename ]; then 
	rm ${result_path}${filename}; 
fi

如果没有文件夹,则创建

if [ ! -d $result_name ];then
	mkdir -p $result_name
fi

shell命令判断文件或文件夹是否存在

#!/bin/sh
#判断文件存在,判断是否为文件夹等
testPath="/Volumes/MacBookProHD/Mr.Wen/"
testFile="/Volumes/MacBookProHD/Mr.Wen/fileWen"

#判断文件夹是否存在 -d
if [[ ! -d "$testPath" ]]; then
	echo "文件夹不存在"
else
	echo "文件夹存在"
fi
#判断文件夹是否存在,并且具有可执行权限
if [[ ! -x "$testFile" ]]; then
	echo "文件不存在并且没有可执行权限"
else
	echo "文件存在并有可执行权限"
fi

#判断文件是否存在
if [[ ! -f "$testFile" ]]; then
	echo "文件不存在"
else
	echo "文件存在"
fi

文件夹不存在则创建

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

文件存在则删除

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

判断文件夹是否存在

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

判断文件是否存在

if [ -f "/data/test.txt" ];then
echo "文件存在"
else 
echo "文件不存在"
fi

方法补充

1.判断目录是否存在

#!/bin/bash

DIR="/usr/passwd"
# 判断目录是否存在,!代表反义,-d代表判断目录存在
if [! -d $DIR ];then
	# 创建目录
	mkdir -p $DIR
	# 打印消息
	echo "Path Not Exist,Creat in $DIR"
fi

2.判断文件是否存在

#!/bin/bash

File=/root/test.txt

if [ ! -f $File ];then
	ifconfig > $File
else
	cat $File
fi

到此这篇关于Linux中判断文件和目录是否存在的shell命令总结的文章就介绍到这了,更多相关linux shell判断文件是否存在内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 实现批量linux格式化硬盘和挂载硬盘脚本分享

    实现批量linux格式化硬盘和挂载硬盘脚本分享

    这篇文章主要介绍了实现批量linux格式化硬盘和挂载硬盘的脚本,需要的朋友可以参考下
    2014-03-03
  • linux shell文件转码iconv命令的使用

    linux shell文件转码iconv命令的使用

    本文主要介绍了linux shell文件转码iconv命令的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Linux 中unzip解压时中文乱码的解决办法

    Linux 中unzip解压时中文乱码的解决办法

    这篇文章主要介绍了Linux 中unzip解压时中文乱码的解决办法的相关资料,这里提供两种解决办法,希望能通过本文帮助到大家,需要的朋友可以参考下
    2017-09-09
  • Linux IO的水平触发和边缘触发的区别

    Linux IO的水平触发和边缘触发的区别

    这篇文章主要介绍了Linux IO的水平触发和边缘触发的区别的相关资料,需要的朋友可以参考下
    2017-05-05
  • 提高你工作效率的shell命令总结大全

    提高你工作效率的shell命令总结大全

    脚本语言可以减少很多手动的操作,作为一个Linux程序员都应该了解简单的脚本编写来代替手动的操作,下面这篇文章主要给大家总结分享了一些提高你工作效率的shell命令,文中给出了详细的示例代码供大家参考学习,需要的朋友们下面来一起看看吧。
    2017-07-07
  • 一个可交互的并发ping检测脚本

    一个可交互的并发ping检测脚本

    可交互的并发ping检测脚本,供大家学习参考。重点& 跟wait,这样“并发”的结果是输出结果不是能按顺序,后台返回。如果需要再排序下
    2013-02-02
  • Linux文件处理常用命令操作技巧

    Linux文件处理常用命令操作技巧

    我是Linux初学者,在这里小编给大家分享linux几个常用文件处理命令,感兴趣的朋友参考下吧
    2017-08-08
  • Linux 终端中命令输出保存到文件中的方法

    Linux 终端中命令输出保存到文件中的方法

    这篇文章主要介绍了如何将 Linux 终端中命令的输出保存到文件中实例操作,操作步骤非常详细,有需要的小伙伴可以按步骤来研究下吧
    2020-12-12
  • 关于使用shell脚本循环处理文本的问题

    关于使用shell脚本循环处理文本的问题

    今天给大家普及关于使用shell脚本循环处理文本的问题,其实操作步骤很简单,本文通过脚本实例给大家讲解,感兴趣的朋友跟随小编一起看看吧
    2021-06-06
  • 详解sed -i 命令入门教程

    详解sed -i 命令入门教程

    这篇文章主要介绍了sed -i 命令入门教程,sed 本身是一个非常复杂的工具,有专门的书籍讲解 sed 的具体用法,网上也有很多关于 sed 的教程,我也是抱着学习的心态来学习 sed 的常见的用法,并进行系统的总结,内容基本覆盖了 sed 的大部分的知识点
    2022-06-06

最新评论