当前位置:首页 » 编程软件 » shell脚本怎么判断目录

shell脚本怎么判断目录

发布时间: 2022-08-28 08:48:05

‘壹’ shell 脚本 判断是不是目录

在 Linux 的 SHELL 编程中,使用 -d filename 选项来判断 filename 是否为目录,若 filename 为目录,则返回值为真。

‘贰’ 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的

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

‘肆’ shell脚本,判断一个目录内是文件还是子目录

说下几种思路:
1)
find
.
-type
f
2)
find
!
-type
d
3)
ls
-Rl
|
awk
'NF>2&&/^[^d]/'
这三种情况可作相同判断:如果结果为空,那就全是目录。
在上述命令后加
>/dev/null
2>&1,然后判断:
if
[
$?-eq
0
];
then
echo
"All
are
files."
else
echo
"All
are
directories."
fi

‘伍’ shell脚本如何判断目录下的多个文件夹是否为空

directoy=./
find
${directoy}
-type
d
|
xargs

-sh
|
grep
^0
|
awk
'{print
$2}'
先在指定目录下查找
目录文件,
然后用

-sh
计算目录大小,
找出大小为0的目录,然后打印出来即可
若是不希望循环查找下去,可以只查找本级目录:
ls
-l
|
grep
^d
|
awk
'{print
$NF}'
|
xargs

-sh
|
grep
^0
|
awk
'{print
$2}'
还有个比较完善的解答:
directoy=./
ls
-l
${directoy}
|
grep
^d
|
awk
'{printf("%s/%s\n",dir,$NF)}'
dir=${directoy}
|
xargs

-sh
|
grep
^0
|
awk
'{print
$2}'

‘陆’ shell脚本实现用户键盘输入目录名,判定/home目录下是否有同名的目录存在

vim shdir.sh

#!/bin/bash
read -p "输入文件夹名称:" dir
if [ -d /home/$dir ]
then
echo $dir
else
mkdir $dir
fi
chmod u+x shdir.sh
这个脚本不能检测和创建带空格的文件夹

‘柒’ 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脚本,对任意指定的目录,判断目录是否存在。若存在,遍历此目录中所有

咨询记录 · 回答于2021-08-05

热点内容
pb编译的模板无法勾选 发布:2025-03-16 11:35:09 浏览:761
利用电信云搭建服务器 发布:2025-03-16 11:35:05 浏览:108
安卓高级开发考什么 发布:2025-03-16 11:20:35 浏览:716
揽胜哪个配置带二代地形 发布:2025-03-16 11:16:52 浏览:969
c语言数组存储文件 发布:2025-03-16 11:16:48 浏览:788
sqlserver2016r 发布:2025-03-16 11:15:58 浏览:26
网页登录找不到该服务器什么意思 发布:2025-03-16 11:14:19 浏览:831
网站搭建服务器搭建 发布:2025-03-16 10:33:27 浏览:795
游戏目录在哪里安卓 发布:2025-03-16 10:33:19 浏览:467
婉儿脚本 发布:2025-03-16 10:19:33 浏览:580