⑴ linux shell 判断文件是否存在 存在就删除
1、linux shell中判断文件是否存在,可以使用test命令的-a参数。借助于if结构进行判断即可。
2、以版~/t/thello.py为例,检测这权个文件,如果存在将其删除,示例代码如下:
if[[-a~/t/hello.py]];thenecho"存在文件";rm-f~/t/hello.pyfi;
3、测试效果如下图所示
⑵ shell脚本查看目录下是否有文件
你能不能一次把问题提完整呢。 shell 没有提供处理文件系统的底层功能。可以使用重定向,在得到一行后就立刻匹配,完成后立刻退出。它不需要等到ls命令完成。可以操作目录下存在大量文件的情况。效率最快的是这个: ls /opt -1F –sort=none | ( read LINE;echo "$LINE"| if grep -q "/$" ; then exit 0 ;else exit 1 ; fi ;)这个命令返回0 表示/opt 目录下存在目录(不代表全部都是目录,这条命令基于你在问题中的假设)。返回非0表示包含非目录文件。-1 表示ls 输出一行个文件。-F 表示输出的每个文件后缀一个符号表示文件类型,文件夹的后缀为 / –sort=none 表示按照磁盘存储顺序进行输出,不进行排序。|grep -q '/$' 表示 如果匹配到/ 结尾的行。最近几天你提的问题相当零散。都不知道你的思维对不对。shell 本身就不是高效率的语言。想要高效率应该使用其他脚本语言,例如perl 。
⑶ 如何在shell脚本中判断文件或者文件夹是否存在
使用-e 判断,例如1234if [ -e $FILE ] then echo $FILE 作为文件或文件夹是存在的fi
⑷ shell判断文件夹内是否有文件
if [ `ls directory | wc` -eq 0 ]thenecho "文件夹为空"fi#directory是要判断的文件夹,'是ESC键下面那个键不是单引号,手机不好打
⑸ linux shell 如何判断一个文件是否存在
了解你的意思,首先,test命令是判断某一个特定的文件相关信息,也就是当你使用test这个命令的时候,你是清楚它叫什么名字的(只是你不知道它的相关信息)。如果你要判断比如你说的以hbc*开头的一类文件,最好就是使用ls命令或者find命令来作。你可以参考一下,下面的小测试。mike>>>ls-d???12-04-2023:15acp/apc/scltmp/xmy/mike>>>test-dx??12-04-2023:15mike>>>echo$?12-04-2023:160mike>>>test-dx*12-04-2023:16test:toomanyarguments使用find命令能很好查找已hbc开头的文件或者目录,但是它不能判断有没有这样的文件,因为你不能通过find的命令执行状态来判断是否有这样的文件,但是可以把find的输出导向到一个文件,从而对文件进行判断。如下:mike>>>find./-typed-name"FUK*"-print12-04-2023:24mike>>>echo$?12-04-2023:240
⑹ shell脚本判断文件夹下是否有文件
我们可复以通过判制断文件夹中的文件的列表是否为空来判断:
if[[-n$(ls)]];then#Dosomethinghereelse#Dosomethingelseherefi
⑺ shell判断目录是否存在
判断表达式中直接用-d判断即可,参考代码如下:
myFolder=/home/test
if[-d$myFolder];then
echo"Folderexists!"
else
echo"Folderdoesn'texist!"
fi
Shell基本上是一个命令解释专器,类似于DOS下的command。它接收属用户命令(如ls等),然后调用相应的应用程序。较为通用的shell有标准的Bourne shell (sh)和C shell (csh)。
(7)shell检测文件夹是否存在扩展阅读:
shell文件描述符
-e 判断对象是否存在
-d 判断对象是否存在,并且为目录
-f 判断对象是否存在,并且为常规文件
-L 判断对象是否存在,并且为符号链接
-h 判断对象是否存在,并且为软链接
-s 判断对象是否存在,并且长度不为0
-r 判断对象是否存在,并且可读
-w 判断对象是否存在,并且可写
-x 判断对象是否存在,并且可执行
⑻ shell怎样判断.gz文件是否存在
1/10分步阅读首先我们要touch一个文件。2/10打开它,输入如下#!/bin/bashif [ -z $1 ]; then #如果没有输入参数,也就是第一个参数的字符串长度为0: #空语句elseif [ -e $1 ]; then #如果文件存在的话if [ -f $1 ]; then #如果文件是个普通文件?echo $1″ is a text file.”elif [ -d $1 ]; then #如果文件是个目录文件?echo $1″ is a directory.”elif [ -c $1 ]; then #如果文件是个字符设备?echo $1″ is a char device.”elif [ -b $1 ]; then #如果文件是个块设备?echo $1″ is a block device.”else #否则echo $1″ is unknow file.”fifi3/10wq保存起来,然后测试它。4/10第一步肯定是要测试参数的问题,如果没参数会怎么样?5/10参数没问题,我们再随便输入一个不存在的文件试试?6/10这完全符合unix哲学,一个程序就该简易,不说更多的废话。很显然,提醒文件不存在是没有必要的,并且缺少参数也是不需要的,我们只要结果,对于unix哲学来说,是这样的。接下来我们要测试我们的重点,我们的文件。首先从普通文件开始测试,那就测试自己吧。7/10然后测试我们的目录?8/10测试我们的字符设备?但是我们不知道机子上有哪些字符设备怎么办?那很简单,我们只要ls -l /dev | more 看一下就行,按enter键往下移。只需要看前面的第一个字符是什么就OKc代表字符设备,b代表块设备那我们等会就测试/dev/adsp的字符设备和/dev/hdc的块设备查看剩余1张图9/10看到了,我们先测试字符设备。按q退出more来看看结果10/10然后再看看我们的块设备?
⑼ Shell脚本中判断文件,目录是否存在或者具有
#!/bin/shNovaPath=”自/var/log/httpd/”NovaFile=”/var /log/httpd/access.log”#这里的-x 参数判断$NovaPath是否存在并且是否具有可执行权限if [ ! -x "$NovaPath"]; thenmkdir “$NovaPath”fi#这里的-d 参数判断$NovaPath是否存在if [ ! -d "$NovaPath"]; thenmkdir “$NovaPath”fi#这里的-f参数判断$NovaFile是否存在if [ ! -f "$NovaFile" ]; thentouch “$NovaFile”fi#其他参数还有-n,-n是判断一个变量是否是否有值if [ ! -n "$NovaVar" ]; thenecho “$NovaVar is empty”exit 0fi#两个变量判断是否相等if [ "$var1" = "$var2" ]; thenecho ‘$var1 eq $var2′elseecho ‘$var1 not eq $var2′fi
⑽ shell判断文件,目录是否存在或者具有权限centos
因shell还不是很熟练,所以做此笔记,方便查看。#!/bin/shmyPath="/var/log/httpd/"myFile="/var/log/httpd/access.log"#这里的-x参数判断$myPath是否存在并且是否具有可执行权限if[!-x"$myPath"];thenmkdir"$myPath"fi#这里的-d参数判断$myPath是否存在if[!-d"$myPath"];thenmkdir"$myPath"fi#这里的-f参数判断$myFile是否存在if[!-f"$myFile"];thentouch"$myFile"fi#其他参数还有-n,-n是判断一个变量是否是否有值if[!-n"$myVar"];thenecho"$myVarisempty"exit0fi#两个变量判断是否相等if["$var1"="$var2"];thenecho'$var1eq$var2'elseecho'$var1noteq$var2'fi========================================shell判断语句流程控制"if"表达式如果条件为真则执行then后面的部分:if….;then….elif….;then….else….fi大多数情况下,可以使用测试命令来对条件进行测试。比如可以比较字符串、判断文件是否存在及是否可读等等…通常用"[]"来表示条件测试。注意这里的空格很重要。要确保方括号的空格。[-f"somefile"]:判断是否是一个文件[-x"/bin/ls"]:判断/bin/ls是否存在并有可执行权限[-n"$var"]:判断$var变量是否有值["$a"="$b"]:判断$a和$b是否相等-rfile用户可读为真-wfile用户可写为真-xfile用户可执行为真-ffile文件为正规文件为真-dfile文件为目录为真-cfile文件为字符特殊文件为真-bfile文件为块特殊文件为真-sfile文件大小非0时为真-tfile当文件描述符(默认为1)指定的设备为终端时为真#########################################################含条件选择的shell脚本对于不含变量的任务简单shell脚本一般能胜任。但在执行一些决策任务时,就需要包含if/then的条件判断了。shell脚本编程支持此类运算,包括比较运算、判断文件是否存在等。基本的if条件命令选项有:-eq—比较两个参数是否相等(例如,if[2–eq5])-ne—比较两个参数是否不相等-lt—参数1是否小于参数2-le—参数1是否小于等于参数2-gt—参数1是否大于参数2-ge—参数1是否大于等于参数2-f—检查某文件是否存在(例如,if[-f"filename"])-d—检查目录是否存在几乎所有的判断都可以用这些比较运算符实现。脚本中常用-f命令选项在执行某一文件之前检查它是否存在。##################################################################判断文件是否存在#!/bin/shtoday=`date-dyesterday+%y%m%d`file="apache_$today.tar.gz"cd/home/chenshuo/shellif[-f"$file"];thenecho"OK"elseecho"error$file">error.logmail-s"failbackupfromtest"[email protected]fi