linuxshell目录存在
『壹』 linux的shell脚本中,如何通过until循环实现 当本目录下存在restart文件夹的时候进行循环呢
可以使用ls或者find来完成对某个文件夹下所有文件的遍历
比如使用ls
可以简单地使用一个通配符来完成
ls 某个目录/*
也可以使用find来完成
比如
find 某个目录
自然的也可以写一个shell脚本来进行遍历
首先进行一个要遍历的文件夹
然后循环查看每个文件
如果该文件是一个文件夹的话则进入该文件夹做和上面相同的事件
这样就可以该整个文件夹内的所有文件进行遍历了
一个简单的代码如下
#!/bin/bash
function show()
{
cd $1
for i in `ls`
do
if [ -d "$i" ]
then
show "$i"
else
echo "$i"
fi
done
cd ..
}
show $1
exit 0
该程序不能遍历以.开头的隐藏文件
可以使用ls -a来进行遍历隐藏文件
遍历时需要注意.和..这两个特殊文件
下面是一个简单的代码
#!/bin/bash
function show()
{
cd $1
for i in `ls -a`
do
if [ "$i" == "." ] || [ "$i" == ".." ]
then
continue;
fi
if [ -d "$i" ]
then
show "$i"
else
echo "$i"
fi
done
cd ..
}
show $1
exit 0
『贰』 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 下执行shell文件提示:No such file or directory,但这个路径明明是存在的,为啥呢求指教
这个问题应该出在find命令上,在脚本中你的路径“~/jre/log1”被保存在一个变量中$logPath
在脚本中:find$logPath-ctime+7这条命令,find把“~”当成普通字符,而不会解析为对应的home目录。
在命令行(shell环境下)环境下:为什么cd ~/jre/log1成功,是因为shell帮你解析“~”为对应的home目录了。
所以如果在脚本中使用find命令,且用“~”表示要使用当前用户home目录,可以结合eval命令使用:
#!/bin/bash
logpath=$(cat/tmp/test.txt)获取带有~的路径
find$(evalecho$logpath)-name"*.txt"使用eval计算表达式结果
『肆』 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中的shell脚本创建文件夹,若文件夹存在,则删除重新创建,若不存在,直接创建,为什么我的代码不成
#!/bin/bash
dire="/tmp/mydire/"
[ -d "$dire" ] && rmdir "$dire"
mkdir "$dire"
这样就可以了。
注意左中括号后有一个空格,
右中括号前有一个空格。
『陆』 linux shell命令在哪个文件夹
你说的shell,应该就是bash咯。。。你学会一个命令,以后就可以经常专使用了,
whereis xxx它可以找到命令的具体目录属
[root@iZ11b6kl1pcZ ~]# whereis bash
bash: /bin/bash /usr/share/man/man1/bash.1.gz
[root@iZ11b6kl1pcZ ~]# whereis cd
cd: /usr/share/man/man1p/cd.1p.gz /usr/share/man/man1/cd.1.gz
建议你学学新手需要掌握的命令!第2章 新手必须掌握的Linux命令。 http://www.linuxprobe.com/chapter-02.html
『柒』 linux的shell脚本,我现在需要判断一个文件夹中是否存在包含上个月譬如201509字符的.dat文件
额...........这太简单了................一条命令就搞定了...................
ls dir | grep -i '201509' | grep -i '.dat'
这种过滤一个下不就知道是否存在了么....................
实际上就是过滤一个文件名而已.........分两个grep也是为了方便理解.........
实际可以用grep 一个正则就能搞定.......
『捌』 linux操作系统中shell命令循环查找家目录下是否存在该文件,存在输出已存在,并且将该文件内
find /home -name "a.txt" -exec cp {} backup \; -exec cp {} dat \;
『玖』 linux中shell查找alluxio文件夹中的某个文件是否存在
find /alluxio/ -type f -name "文件名"