一個刪除資料夾下所有檔案的shell指令碼,不刪除最外層的資料夾
阿新 • • 發佈:2018-12-31
最近,由於工作需要,寫了一個刪除資料夾下所有檔案的shell指令碼,程式碼比較醜陋,但是可用,哈哈。centos7下親測可用。該指令碼只刪除父資料夾下的所有檔案和子資料夾,但不刪除父資料夾本身。
這個shell指令碼檔名是:clearFile.sh。內容是:
將該shell指令碼複製到centos中指定目錄之後,使用如下命令賦予可執行許可權:#! /bin/bash function clearFile(){ if [`$1 -eq 'logs'` -o `$1 -eq 'log'`]; then echo "clearFile can be called" for file in `ls $1` do if [ -d $1"/"$file ]; then echo "deleting directory: " $1"/"$file rm -rf $1"/"$file else echo "deleting file: " $1"/"$file rm -rf $1"/"$file fi done else echo "clearFile cannot be called!!!, the dir name is: "$1 fi } runPath=$(cd `dirname $0`;pwd) echo "the script is located in directory :" $runPath clearFile $1
chmod 777 clearFile.sh
然後就可以愉快使用了,假如要刪除logs目錄下的所有日誌檔案。執行如下命令即可:
./clearFile.sh logs
不過,為了安全起見,該指令碼允許清空內容的資料夾名字只能是logs或者log,也即只對如下兩個呼叫生效。有需要的可以自己稍作修改。./clearFile.sh logs 或者 ./clearFile.sh log