⑴ 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中怎么查看文件是否存在
两个方式: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下如何判断该文件是否是可执行程序
无所谓什么可执行。随便一个文件都可以用“./filename”来执行(filename文件在当前目录内)。
如果该文件原本就不是设计用来执行的(随便举个例子,比如一个OpenOffice文档文件),敲入命令后执行,屏幕会报错,说某句不合语法啥的。如果这个文件就是设计用来执行的,比如你说的二进制和脚本文件,在代码没错的情况下,敲入命令后就会有预期的执行结果了。
如果文件属性里有x,那么你可以“./filename”来运行。否则,用“sudo
./filename”来执行。
而且终端中用ls命令后,这类属性带x的会显示绿色。
⑷ 在linux下编写shell脚本,判断当前目录下所有文件类型,如果是普通文件,显示内容,如果是目录
forfilein*
do
if[-f"$file"]
then
if[-s"$file"]
then
printf"File:$file "
cat"$file"
else
rm"$file"
fi
else[-d"$file"]
printf"Directory:$file "
ls"$file"
fi
printf" "
done
⑸ linux脚本编写判断文件是否变更并生成报告
你可以用rsync -azv 命令。它可以比对原先文件的时间,内容,以及权限。你可以先用该命令那个目录的内容备份出来。需要的时候就用备份出来的目录内容比对原先系统目录的内容,如果发生变化了,它会列表出来的。之后要怎么做,都很简单了。原始文件和变化文件你都有,可以任意操作。
⑹ linux shell脚本判断某个文件的大小,符合条件则备份并重命名
cattest.sh
#!/bin/sh
FILE=$1
FILE_SIZE=`$FILE|awk'{print$2}'`
if[$FILE_SIZE-ge10485760]
then
cp-p$FILE$FILE-bak
fi
chmod+xtest.sh
./test.sh1.txt
逐行解释
查看脚本文件test.sh
定义脚本默认用sh执行
将文件路径赋予FILE变量。$1 表示位置变量即下面的1.txt
计算文件大小并赋予FILE_SIZE变量
如果文件大小大于等于10M. 10485760为10M,-ge为大于等于。
if语法关键字
将文件重命名备份
if语法关键字
空行
赋予脚本test.sh可执行权限
执行脚本,输入位置变量1.txt.
⑺ 编写linux脚本,判断一个文件中是否有指定的关键字,如果有执行命令,如果没有执行其他命令
#!/bin/sh
ifgrep-qkeywordfilename
then
command
fi
keyword替换成你要的关键字,filename替换成你要判断的文件名,command替换成你要执行的命令
⑻ linux脚本语言判断文件权限的参数是什么
-r file用户可读为真
-w file用户可写为真
-x file用户可执行为真
-f file文件为正规文件为真
-d file文件为目录为真
-c file文件为字符特殊文件为真
-b file文件为块特殊文件为真
-s file文件大小非0时为真
-t file当文件描述符(默认为1)指定的设备为终端时为真
如:
myPath="/var/log/httpd/"
myFile="/var /log/httpd/access.log"
#这里的-x 参数判断$myPath是否存在并且是否具有可执行权限
if [ ! -x "$myPath"]; then
mkdir "$myPath"
fi
#这里的-d 参数判断$myPath是否存在
if [ ! -d "$myPath"]; then
mkdir "$myPath"
fi
#这里的-f参数判断$myFile是否存在
if [ ! -f "$myFile" ]; then
touch "$myFile"
fi
⑼ linux的shell 脚本里怎么用if 判断文件大小呀
需要几个工具 基本上思路是 用 配合awk取得文件大小 ,然后if判断
伪代码如下
s=` -k logfile|awk '{print $1}'`
if [ $s -gt 1024000000 ]
then
停止oracle监听进程
rm -rf logfile && touch logfile
启动oracle监听进程
else
continue
fi
⑽ 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、测试效果如下图所示