linuxif文件不存在
Ⅰ linux makefile 判断文件存在与否
makefile判断文件存在如下的两种方法:
1. 调用shell的函数进行判断
exist = $(shell if [ -f $(FILE) ]; then echo "exist"; else echo "notexist"; fi;)
ifeq (exist, "exist")
#do something here
endif当然,这个方法很土,但是能够工作!! 2. 使用makefile的函数进行判断ifeq ($(FILE), $(wildcard $(FILE)))
#do something here
endif $(wildcard $(FILE))的意思是当前路径下的文件名匹配FILE的文件展开。假设当前路径下存在a.c 和 b.c,那么执行src=$(wildcard *.c)src的值就为a.c b.c;如果不使用通配符,比如src=$(wildcard c.c);那么就是要展开当前路径下,文件名为c.c的文件,因为当前路径下文件不存在,因此src为空字符串。
Ⅱ linux判断文件是否存在不存在则创建
# !/bin/sh echo "请输入你要判断的文件的完整路径:" read filepath if [ -f $filepath ]; then echo "文件存在!" echo "文件在$filepath" else echo "文件不存在或者您输入的路径有误" fi #end
Ⅲ linux判断/opt/madie是否存在
如果ftp上的文件很大,获取文件会很费时。应该可以不用获取直接判断的,下面供借鉴:
#!/bin/bashserver=127.0.0.1 #改为你自己的FTP服务器IPuser=root #修改为你自己的FTP登录用户名password=root #修改为你自己的FTP用户密码errlog=./err.log #用于记录FTP错误 ftpCheckFile(){ftp -n -i $server <<EOFUSER $userPASS $passwordls $1byeEOF} rm -f $errlogftpCheckFile $1 >/dev/null 2>$errlogbytes=`wc -c $errlog | awk '{print $1}'`if [ $bytes -eq 0 ]; then echo "$1 - Exist!"else echo "$1 - Not exist!"fi
用的时候在脚本名后跟一个参数,就是你要判断的文件名或路径名。
思路:如果文件或路径不存在,FTP中的ls命令会执行错误,从而在错误日志err.log中有记录。
通过解析该错误日志的内容,可以得知文件或目录是否存在。
我这里暂时没有环境试验,所以没法得知错误日志的格式,只能暂且通过判断日志字节大小是否为0来看是否发生了错误,而无法确定具体错误种类。
Ⅳ linux 判断目录里是否有文件
如果是在脚本中可以写成:
if[[$(ls目录名)]];then
echo"有文件"
else
echo"没有"
fi
如果是在命令行中,可写成一行:
if[[$(ls目录名)]];thenecho"有文件";elseecho"没有";fi
其中:
$(ls目录名) 是目录里文件的列表
if[[$(ls目录名)]] 表示如果目录内有文件为真,如果目录内没有文件则为假
Ⅳ 关于linux,shell脚本中怎样判断文件是否有内容
可以用“test 条件表达式”进行测试,如:test -f /etc/fstab 测试文件/etc/fstab文件是否存在
-e File 如果文件File存在(Exist),则为True
-s File 如果文件File存在且文件大小(Size)大于零,则为True
-f File 如果文件File存在且是普通文件(File),则为True
-d File 如果文件File存在且是目录(Directory),则为True
-b File 如果文件File存在且是块(Block)特殊文件,则为True
-c File 如果文件File存在且是字符(Character)特殊文件,则为True
-L File 如果文件File存在且是符号链接(Link)文件,则为True
-r File 如果文件File存在且是可读的(Readable),则为True
-w File 如果文件File存在且是可写的(Writable),则为True
-x File 如果文件File存在且是可执行的(Executable),则为True
-O File 如果文件File存在且属于当前用户(Owner),则为True
-G File 如果文件File存在且属于当前用户组(Group),则为True
File1 -nt File2 如果文件File1新于(Newer Then) File2,则为True
File2 -ot File2 如果文件File1旧于(Older Then) File2,则为True
Ⅵ linux shell 判断文件是否存在 存在就删除
1、linux shell中判断文件是否存在,可以使用test命令的-a参数。借助于if结构进行判断即可。
2、以~/t/thello.py为例,检测这个文件,如果存在将其删除,示例代码如下:
if[[-a~/t/hello.py]];then
echo"存在文件";
rm-f~/t/hello.py
fi;
3、测试效果如下图所示
Ⅶ linux中怎么查看文件是否存在
两个方式:find命令或者shell脚本。
1、find命令
find是linux下用于查找文件的通用方法。
find语法: find [指定查找目录] [查找规则] [查找完后执行的action]
例如:find /tmp -name wa* -type l ,是在/tmp下查找名为wa开头且类型为符号链接的文件。找到就表示存在。
2、shell脚本
在进行文件的自动处理中常常需要自动判别,下面的脚本判断test.log是否存在,存在则显示文件存在,否则显示文件不存在。
例子:编辑一个脚本判断文件是否存在
vi t.sh
#!/bin/bash
if [ -e /temp/test.log ];then //这里是判断语句,-e表示进行比较结果为真则存在
echo "文件存在"
else
echo "文件不存在"
fi
保存退出
执行:
sh t.sh
Ⅷ linux shell 如何判断一个文件是否存在
了解你的意思,首先,test命令是判断某一个特定的文件相关信息,也就是当你使用test这个命令的时候,你是清楚它叫什么名字的(只是你不知道它的相关信息)。如果你要判断比如你说的以hbc*开头的一类文件,最好就是使用ls命令或者find命令来作。你可以参考一下,下面的小测试。
mike
>>>
ls
-d
???
12-04-20
23:15
acp/
apc/
scl
tmp/
xmy/
mike
>>>
test
-d
x??
12-04-20
23:15
mike
>>>
echo
$?
12-04-20
23:16
0
mike
>>>
test
-d
x*
12-04-20
23:16
test:
too
many
arguments
使用find命令能很好查找已hbc开头的文件或者目录,但是它不能判断有没有这样的文件,因为你不能通过find的命令执行状态来判断是否有这样的文件,但是可以把find的输出导向到一个文件,从而对文件进行判断。如下:
mike
>>>
find
./
-type
d
-name
"FUK*"
-print
12-04-20
23:24
mike
>>>
echo
$?
12-04-20
23:24
0
Ⅸ 求一个Linux脚本,判断文件是否存在即
#!/bin/bash
Filename=/usr/123.txt
File_time=`stat -c %Y $Filename`;
Sys_time=`date +%s`;
if [ ! -f /usr/123.txt ]; then
echo "0"
else
exit 0
if [ $[ $Sys_time - $File_time ] -gt 300 ];then
echo "1";
else
echo "0";
fi
fi
Ⅹ linux 查找文件夹下是否有某文件
两个方式:find命令或者shell脚本。
1、find命令
find是linux下用于查找文件的通用方法。
find语法:
find
[指定查找目录]
[查找规则]
[查找完后执行的action]
例如:find
/tmp
-name
wa*
-type
l
,是在/tmp下查找名为wa开头且类型为符号链接的文件。找到就表示存在。
2、shell脚本
在进行文件的自动处理中常常需要自动判别,下面的脚本判断test.log是否存在,存在则显示文件存在,否则显示文件不存在。
例子:编辑一个脚本判断文件是否存在
vi
t.sh
#!/bin/bash
if
[
-e
/temp/test.log
];then
//这里是判断语句,-e表示进行比较结果为真则存在
echo
"文件存在"
else
echo
"文件不存在"
fi
保存退出
执行:
sh
t.sh