生成測試數據腳本
點擊查看代碼
#!/bin/bash
#在對應文件夾下生成指定數量的文件夾
#參數 文件夾,需要新生成的文件夾個數
createDirs(){
cd $1
i=1
while(( $i<=$2 ))
do
newDir="dir${i}"
echo $newDir
mkdir $newDir
let "i++"
sleep 1 #等一秒再生成下一個文件夾
done
ls -t
}
#待生成文件夾的根目錄
dirsBasePathArr=("/shell/testdelfile/dirs" "/shell/testdelfile/dirs2")
for dir in ${dirsBasePathArr[*]}; do
createDirs $dir 10
done
刪除對應文件夾下的文件,保留文件修改時間最近的前N個腳本
點擊查看代碼
#!/bin/bash
#刪除對應文件夾下的文件,保留文件修改時間最近的前N個
#參數:待刪除文件夾,需要保留的個數
deleteFilesByDir(){
fileIndex=1 #文件記錄索引
#按照創建時間從新到舊列出所有文件
cd $1
for file in `ls -t`
do
if [[ $fileIndex -gt $2 ]]; then
echo $file' need delete'
rm -rf $file
else
echo $file' no delete'
fi
let "fileIndex++"
done
}
#待刪除的文件夾目錄
dirsBasePathArr=("/shell/testdelfile/dirs" "/shell/testdelfile/dirs2")
for dir in ${dirsBasePathArr[*]}; do
deleteFilesByDir $dir 5
done