iT邦幫忙

0

Shell Script 連接多個萬用字元問題

各位前輩好 小弟撰寫以下程式遇到一些問題
這script是想要將 /home目錄下的特定使用者加入陣列
之後用迴圈跑if條件 想在一個if裡面刪除特定多個附檔名(txt,xls等)

小弟的問題在於 怎麼把多個萬用字元副檔名連接 *.txt *.xls
或者各位大大有其它更好的想法建議
謝謝

!/bin/sh
Date=$(date +"%Y-%m-%d-%H:%M")
###Users

NAME[0]="james"
NAME[1]="amy"
NAME[2]="Mahnaz"
NAME[3]="Ayan"
NAME[4]="kevin"

##################

for ((i=0;i<5 ;i++))
do

############刪除txt跟xls

if [ -f /home/${NAME[$i]}/*.txt *.xls]; then #### 連結多個附檔名問題

find /home/${NAME[$i]} -mtime -1 -name *.txt *.xls -exec rm -f {} ; # 連結多個附檔名問題

echo $Date--${NAME[$i]} "*.txt *.xls 檔案已刪除"

#############找不到檔案刪除
else

echo $Date--${NAME[$i]} "無刪除檔案"

fi
done

1 個回答

1
DanSnow
iT邦新手 1 級 ‧ 2020-07-24 17:47:31
最佳解答

[ 與 find 正好都可以用 -o 代表 or 來使用,也就是兩個條件只要滿足其中一個就行,你可以試試

if [ -f /home/${NAME[$i]}/*.txt -o -f /home/${NAME[$i]}/*.xls]; then

find /home/${NAME[$i]} -mtime -1 -name *.txt -o -name *.xls -exec rm -f \{\} \; 
ohohez iT邦新手 5 級 ‧ 2020-07-28 10:39:14 檢舉

OK,謝謝前輩

我要發表回答

立即登入回答