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 "文件名"