linux判断目录存在
㈠ 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判断目录是否存在 -d
判断目录是否存在用-d
例如: if [ -d /test/test1];then
echo "目录存在"
else
mkdir -p /test/test1
fi
㈢ linux 的expect怎么判断目录是否存在
代码实现,可以用隐藏扩展BAT的搜索法输出结果,然后就可检查是否有。
㈣ linux查看目录下文件的命令
linux中查看文件和目录的命令是:LS
LS英文原意:list,命令所在路径:/bin/ls,适用于所有用户权限,主要功能就是以列表形式显示目录文件。
其语法: ls 选项【-ald】【文件或目录】
其中,-a 显示所有文件,包括隐藏文件;
-l 详细信息显示;
-d 仅显示目录名,而不显示目录下的内容列表;
-h 人性化显示(hommization);
-i 查看任意一个文件的i节点(类似于身份证唯一信息);
-t 用文件和目录的更改时间排序;可以用第一个显示的文件判断最近修改的文件;
注意:. 开头的文件除非是目录,否则就是隐藏文件
(4)linux判断目录存在扩展阅读:
创建目录命令:mkdir,英文原意:make directories,命令所在路径:/bin/mkdir,适用于所有用户权限,功能在于创建新的目录。
其语法: mkdir 【-p】【目录名】
-p 递归创建
例子:a)创建单个目录:mkdir /tmp/vae.txt
b)创建多个目录:mkdir /tmp/a.txt /tmp/b.txt
使用时的注意事项:
1、创建的目录已经存在, 那么 Linux 会提示我们 Linux 无法创建它。
2、不带任何参数运行 mkdir 命令会在当前目录下创建目录。
3、不带上-p,如果新建的文件上级目录不存在则不会执行成功这种说法是错误的。加或者不加上 -p 前面的目录没有得都会依次创建。
4、创建目录的首要条件是, 在想要创建目录的目标路径下你必须具有访问权限。
㈤ 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,则为真
-h filename 如果文件是软链接,则为真
㈥ linux 判断目录里是否有文件
如果是在脚本中可以写成:
if[[$(ls目录名)]];then
echo"有文件"
else
echo"没有"
fi
如果是在命令行中,可写成一行:
if[[$(ls目录名)]];thenecho"有文件";elseecho"没有";fi
其中:
$(ls目录名) 是目录里文件的列表
if[[$(ls目录名)]] 表示如果目录内有文件为真,如果目录内没有文件则为假
㈦ linux C++ 怎么判断一个目录是否存在
使用access函数。
access("/home/A/src", F_OK);
其返回值为0表示目录存在,否则不存在。
㈧ linux 目录是否存在命令
#shell判断文件夹是否存在
#如果文件夹不存在,创建文件夹
if [ ! -d "/myfolder" ]; then
mkdir /myfolder
fi
#shell判断文件,目录是否存在或者具有权限
folder="/var/www/"
file="/var/www/log"
# -x 参数判断 $folder 是否存在并且是否具有可执行权限
if [ ! -x "$folder"]; then
mkdir "$folder"
fi
# -d 参数判断 $folder 是否存在 《Linux就该这么学》 一起学习linux
if [ ! -d "$folder"]; then
mkdir "$folder"
fi
# -f 参数判断 $file 是否存在
if [ ! -f "$file" ]; then
touch "$file"
fi
# -n 判断一个变量是否有值
if [ ! -n "$var" ]; then
echo "$var is empty"
exit 0
fi
# 判断两个变量是否相等
if [ "$var1" = "$var2" ]; then
echo '$var1 eq $var2'
else
echo '$var1 not eq $var2'
fi
㈨ linux 判断文件夹是否有某个目录
1. shell判断文件,目录是否存在或者具有权限
2. #!/bin/sh
3.
4. myPath="/var/log/httpd/"
5. myFile="/var /log/httpd/access.log"
6.
7. # 这里的-x 参数判断$myPath是否存在并且是否具有可执行权限
8. if [ ! -x "$myPath"]; then
9. mkdir "$myPath"
10. fi
11.
12. # 这里的-d 参数判断$myPath是否存在
13. if [ ! -d "$myPath"]; then
14. mkdir "$myPath"
15. fi
16.
17. # 这里的-f参数判断$myFile是否存在
18. if [ ! -f "$myFile" ]; then
19. touch "$myFile"
20. fi
21.
22. # 其他参数还有-n,-n是判断一个变量是否是否有值
23. if [ ! -n "$myVar" ]; then
24. echo "$myVar is empty"
25. exit 0
26. fi
27.
28. # 两个变量判断是否相等
29. if [ "$var1" = "$var2" ]; then
30. echo '$var1 eq $var2'
31. else
32. echo '$var1 not eq $var2'
33. fi
-f 和-e的区别
Conditional Logic on Files
-a file exists.
-b file exists and is a block special file.
-c file exists and is a character special file.
-d file exists and is a directory.
-e file exists (just the same as -a).
-f file exists and is a regular file.
-g file exists and has its setgid(2) bit set.
-G file exists and has the same group ID as this process.
-k file exists and has its sticky bit set.
-L file exists and is a symbolic link.
-n string length is not zero.
-o Named option is set on.
-O file exists and is owned by the user ID of this process.
-p file exists and is a first in, first out (FIFO) special file or
named pipe.
-r file exists and is readable by the current process.
-s file exists and has a size greater than zero.
-S file exists and is a socket.
-t file descriptor number fildes is open and associated with a
terminal device.
-u file exists and has its setuid(2) bit set.
-w file exists and is writable by the current process.
-x file exists and is executable by the current process.
-z string length is zero.
是用 -s 还是用 -f 这个区别是很大的!