Shell刪除某個資料夾下指定字元開頭的所有檔案

2021-10-24 07:47:16 字數 1551 閱讀 5453

工作中遇到過日誌資料夾裡面存放的日誌數量太多,直接使用rm -rf 刪除提示引數太多,其實是因為要刪除的檔案太多,沒法一次全部刪除,具體rm -rf能夠一次刪除的數量是多少就不知道了,為了解決這個問題,寫了個指令碼,迴圈乙個個刪除。

需要指定要刪除的路徑和要刪除檔案的開頭,因為一般日誌的開頭是一樣的,可以防止誤刪除其他檔案。

echo "該指令碼是要刪除指定資料夾下指定字元開頭的檔案,請注意安全使用"

#for dirtory in $(ls /home/weiwei/test_shell/test)

#do# echo "刪除 $dirtory"

# rm -rf $dirtory

#done

#read -p "輸入要刪除的資料夾路徑: " path

if read -t 10 -p "請輸入要刪除的資料夾路徑: " path

then

echo "要刪除的資料夾是: $path "

else

echo

echo "超時了,退出"

exit

fiif [ "$path" == '' ]

then

echo "輸入的路徑是空,退出"

exit

fi#if read -t 5 -p "你確定要清空資料夾 $path 中的所有內容嗎?(y/n) " answer

#then

# if [ $answer -eq "y" ]

if [ -d $path ]

then

echo "要刪除的路徑存在"

else

echo "要刪除的資料夾不存在,退出"

exit

fi#echo "開始刪除"

read -p "要刪除檔案的名稱字首: " beginname

if read -t 5 -p "你確定要刪除資料夾 $path 下以 $beginname 開頭的檔案嗎?(y/n): " answer

then

# if [ "$answer" == "y" ]

case $answer in

y|y)

# then

len=$

for file in $path/*

doecho "this is : $file"

name=$(basename $file)

echo "name: $name"

echo $

if [[ $ == $beginname ]]

then

echo " $file 以 $beginname 開頭,刪除他.. $file"

rm -rf $file

else

echo " $file 不是以 $beginname 開頭,不刪除他"

fidone

;;#else

*) echo "你沒有回答yes,退出"

exit

;;#fi

esac

else

echo "輸入超時,退出"

exit

fi

Ubuntu刪除資料夾下某個檔案之外的其他所有檔案

假設當前目錄下有以下檔案 想要刪除1.txt以外的檔案和目錄,第一種可行的方法如下 先把1.txt以外的檔案找出來,然後刪除。cxdn1013 cxdn1013 inspiron 5439 0202 ls grep v 1.txt 2.txt delete.sh downloads cxdn1013...

c語言刪除linux指定資料夾下指定數量的檔案

include include include define maxlen 1024typedef struct file info file info struct list 定義乙個鍊錶頭部 static struct list list head null void rmfile char p...

查詢指定資料夾下的檔案

include include using namespace std finddata t結構體 struct finddata t void main attrib為檔案屬性,由以下字元代表 fa rdonly 唯讀檔案 fa label 卷標號 fa hidden 隱藏檔案 fa direc ...