当前位置:首页 » 编程软件 » 脚本判断目录是否存在

脚本判断目录是否存在

发布时间: 2022-05-29 22:36:47

㈠ 编写shell脚本,对任意指定的目录,判断目录是否存在。若存在,遍历此目录中所有

摘要 在编写shell脚本时,通常最开始的工作是对环境的检查,比如检查某一文件或目录是否存在,并执行相应的操作等。下面的shell脚本实现的功能是,先检查某一目录是否存在,不存在的话就创建此目录,存在的话就cd到这个目录下。

㈡ bat判断一个文件是否存在

使用BAT命令判断文件是否存在。

范例:

@echo off

if not exist c:Temp1.txt goto nofile --1

goto start --2

:nofile

\xp emp111.txtc: emp1.txt --3

:start

mstsc.exe --4

注释:

1:此处的意思是判断如果不存在C:TEMP1.TXT 则跳转至自定义的NOFILE的脚本,如果存在刚跳过。执行下一步。

2:执行自定义START脚本。

3:此处为执行第一句判断的后续内容,(复制网络路径\SERVERTEMP111.TXT到当前机器中的C:TEMP目录中并改名为1.txt。

4:执行MSTSC.exe程序。

㈢ 关于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

㈣ Shell脚本中判断文件,目录是否存在或者具有

#!/bin/sh
NovaPath=”/var/log/httpd/”
NovaFile=”/var /log/httpd/access.log”
#这里的-x 参数判断$NovaPath是否存在并且是否具有可执行权限
if [ ! -x "$NovaPath"]; then
mkdir “$NovaPath”
fi
#这里的-d 参数判断$NovaPath是否存在
if [ ! -d "$NovaPath"]; then
mkdir “$NovaPath”
fi
#这里的-f参数判断$NovaFile是否存在
if [ ! -f "$NovaFile" ]; then
touch “$NovaFile”
fi
#其他参数还有-n,-n是判断一个变量是否是否有值
if [ ! -n "$NovaVar" ]; then
echo “$NovaVar is empty”
exit 0
fi
#两个变量判断是否相等
if [ "$var1" = "$var2" ]; then
echo ‘$var1 eq $var2′
else
echo ‘$var1 not eq $var2′
fi

㈤ 如何在shell脚本中判断文件或者文件夹是否存在

使用-e 判断,例如
1
2
3
4
if [ -e $FILE ]
then
echo $FILE 作为文件或文件夹是存在的
fi

㈥ 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判断文件,目录是否存在或者具有权限

#!/bin/sh
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
#其他参数还有-n,-n是判断一个变量是否是否有值
if [ ! -n "$myVar" ]; then
echo "$myVar is empty"
exit 0
fi
#两个变量判断是否相等
if [ "$var1" = "$var2" ]; then
echo '$var1 eq $var2'
else
echo '$var1 not eq $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是否相等 -r file用户可读为真
-w file用户可写为真
-x file用户可执行为真
-f file文件为正规文件为真
-d file文件为目录为真
-c file文件为字符特殊文件为真
-b file文件为块特殊文件为真
-s file文件大小非0时为真
-t file当文件描述符(默认为1)指定的设备为终端时为真
######################################################### 含条件选择的shell脚本
对于不含变量的任务简单shell脚本一般能胜任。但在执行一些决策任务时,就需要包含if/then的条件判断了。shell脚本编程支持此类运算,包 括比较运算、判断文件是否存在等。基本的if条件命令选项有: -eq —比较两个参数是否相等(例如,if [ 2 –eq 5 ])
-ne —比较两个参数是否不相等
-lt —参数1是否小于参数2
-le —参数1是否小于等于参数2
-gt —参数1是否大于参数2
-ge —参数1是否大于等于参数2
-f — 检查某文件是否存在(例如,if [ -f "filename" ])
-d — 检查目录是否存在
几 乎所有的判断都可以用这些比较运算符实现。脚本中常用-f命令选项在执行某一文件之前检查它是否存在。 ################################################################## 判断文件是否存在 #!/bin/sh
today=`date -d yesterday +%y%m%d`
file="apache_$today.tar.gz"
cd /home/chenshuo/shell
if [ -f "$file" ];then
echo "OK"
else
echo "error $file" >error.log
mail -s "fail backup from test" [email protected] <error.log
fi

㈧ shell判断文件,目录是否存在或者具有权限centos

因shell还不是很熟练,所以做此笔记,方便查看。
#!/bin/sh
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
#其他参数还有-n,-n是判断一个变量是否是否有值
if
[
!
-n
"$myVar"
];
then
echo
"$myVar
is
empty"
exit
0
fi
#两个变量判断是否相等
if
[
"$var1"
=
"$var2"
];
then
echo
'$var1
eq
$var2'
else
echo
'$var1
not
eq
$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是否相等
-r
file用户可读为真
-w
file用户可写为真
-x
file用户可执行为真
-f
file文件为正规文件为真
-d
file文件为目录为真
-c
file文件为字符特殊文件为真
-b
file文件为块特殊文件为真
-s
file文件大小非0时为真
-t
file当文件描述符(默认为1)指定的设备为终端时为真
#########################################################
含条件选择的shell脚本
对于不含变量的任务简单shell脚本一般能胜任。但在执行一些决策任务时,就需要包含if/then的条件判断了。shell脚本编程支持此类运算,
包括比较运算、判断文件是否存在等。基本的if条件命令选项有:
-eq
—比较两个参数是否相等(例如,if
[
2
–eq
5
])
-ne
—比较两个参数是否不相等
-lt
—参数1是否小于参数2
-le
—参数1是否小于等于参数2
-gt
—参数1是否大于参数2
-ge
—参数1是否大于等于参数2
-f

检查某文件是否存在(例如,if
[
-f
"filename"
])
-d

检查目录是否存在

乎所有的判断都可以用这些比较运算符实现。脚本中常用-f命令选项在执行某一文件之前检查它是否存在。
##################################################################
判断文件是否存在
#!/bin/sh
today=`date
-d
yesterday
+%y%m%d`
file="apache_$today.tar.gz"
cd
/home/chenshuo/shell
if
[
-f
"$file"
];then
echo
"OK"
else
echo
"error
$file"
>error.log
mail
-s
"fail
backup
from
test"
[email protected]
fi

㈨ shell脚本判断文件夹下是否有文件

search_dir=/tmp/test
include_subdir=1

if[$include_subdir-eq1];then
n=$(find$search_dir-typef-execsh-c'printf"%s ""$1";kill"$PPID"'sh{};|grep-v"Terminated"|wc-l)
else
n=$(find$search_dir-maxdepth1-typef-execsh-c'printf"%s ""$1";kill"$PPID"'sh{};|grep-v"Terminated"|wc-l)
fi

结果 n 为 0 表示指定目录下面没有文件,否则有文件。如果不需要检查指定目录下的子目录,把 include_subdir 置为 0 即可。find 命令中较复杂的那部分是为了实现找到第一个文件时就停止查找,避免检查有大量文件的目录时影响性能。

㈩ 编写一个shell脚本,依次判断位置参数$1-$9代表的文件名,在当前目录下是否存在

题主你好,

代码及测试截图如下:

说明: 上图共有3条命令:

第一条: ls -l列出了当前文件夹中共有5个文件, 分别为A,B,C,D,user.sh.这里面user.sh是我们的脚本文件;

第二条: cat user.sh 看一下user.sh这个脚本中的内容;

第三条: ./user.sh A B C E 执行脚本;

*.这里面代码中没有明确给出$1-$9,而是直接使用的$@,题主看一下,如果不行的话代码可以改成包含$1到$9的

希望可以帮到题主,欢迎追问

热点内容
sql数据求和 发布:2024-05-13 06:30:15 浏览:809
传奇服务器防挂叫什么 发布:2024-05-13 06:22:39 浏览:60
android地理位置 发布:2024-05-13 06:00:48 浏览:238
sql转换工具 发布:2024-05-13 05:52:38 浏览:63
车站的防火配置应符合什么规定 发布:2024-05-13 05:42:28 浏览:666
皓影2驱豪华版有哪些配置 发布:2024-05-13 05:42:26 浏览:267
京东方宿舍wifi密码多少 发布:2024-05-13 05:28:58 浏览:497
电脑家庭服务器搭建 发布:2024-05-13 04:53:41 浏览:114
退火算法matlab 发布:2024-05-13 04:39:17 浏览:396
数据库公式 发布:2024-05-13 04:31:19 浏览:593