應用場景:寫了不少版的文檔,定稿後只保留終稿,草稿狀的都刪除。linux
以下目錄結構,刪除root_dir下文件名稱包含草稿的全部文件shell
/root_dir 草稿_1.txt 草稿_2.txt 終稿_1.txt 終稿_2.txt /child_dir child_草稿_1.txt child_草稿_2.txt child_終稿_1.txt child_終稿_2.txt /child_dir_2 child_2_草稿_1.txt child_2_草稿_2.txt child_2_終稿_1.txt child_2_終稿_2.txt
這裏須要層層遍歷文件夾,如root_dir中包含了文件夾child_dir。bash
#!/bin/bash cd root_dir for file in `ls .` do if [ -f $file ] then rm *草稿* fi if [ -d $file ] then echo $file 爲目錄 cd $file for f in `ls .` do if [ -f $f ] then rm *草稿* fi done cd .. fi done
刪除完畢。post
cd root_dir find . -name "*未完*" -exec rm -f {} \;
刪除完畢。code
注意:必定要保證進入了須要刪除文件的目錄,該命令沒法撤回ip
find命令參數可查element
#!/bin/bash function getdir(){ for element in `ls $1` do dir_or_file=$1"/"$element if [ -d $dir_or_file ] then getdir $dir_or_file fi else if [[ $element == 【未完】* ]] then rm $dir_or_file echo $dir_or_file fi fi done } root_dir="_posts" getdir $root_dir
這裏刪除要使用全路徑,不然會報錯找不到文件。文檔