Linux刪除空目錄

2022-07-30 17:30:15 字數 1574 閱讀 8560

今天整理東西。需要刪掉小於5m的檔案。乙個find就可以了

find . -type f -size -5m -exec rm -f {} \;

然後需要刪掉所有的空目錄。沒想到簡單的命令,於是組合一下命令

#!/bin/bash

#filename:rm_empty_dir.

shfor i in `find . -type d`

doif [ `ls $i | wc -l` = 0

]

then

rm -rf $i

fidone

用while

#!/bin/bash

#filename:rm_empty_dir_2.

shfind . -type d | while read dir

doif [ `ls $dir | wc -l` = 0

]

then

rm -rf $dir

fidone

這倆個都可以達到目的,但是如果乙個空目錄裡面還有子空目錄的話,父空目錄將不會被刪除,於是改進一下

#!/bin/bash

#filename:rm_empty_dir_3.

shfor i in `find . -type d`

doif [ `find $i -type f | wc -l` = 0

]

then

rm -rf $i

fidone

這回可以刪除空目錄套空目錄了,不過還有乙個缺陷,把父空目錄刪掉以後,for迴圈的i讀到子空目錄名的時候會報錯,因為已經和父目錄一起被刪。。執行的時候把錯誤資訊重定向到/dev/null吧

再改改,改通用點

#!/bin/bash

#filename:rm_empty_dir_4.

shif [ $# -ne 1

]then

echo

"usage: $0 [path]

"else

for i in `find $1 -type d`

doif [ `find $i -type f 2>/dev/null | wc -l` = 0

]

then

rm -rf $i

fidone

fi

支援一下多目錄。。

#!/bin/bash

#filename:rm_empty_dir_5.

shif [ $# -lt 1

]then

echo

"usage: $0 [path]

"else

for i in `echo"$*

"`dofor j in `find $i -type d`

doif [ 0 -eq `find $j -type f 2>/dev/null | wc -l` ]

then

rm -rf $j

fidone

done

fi

刪除空目錄

專案需要遍歷兩個樹,以及其他一些引數生成一批excel 檔案樹,即 n級目錄 excel檔案。為了提高建立檔案的效率,一開始,遍歷的過程中,就將乙個乙個excel檔案樹子節點先建立好 只是建立目錄,並沒有建立檔案 然後,開啟100多個執行緒,各自去查資料庫,建立相應的檔案。單錶最多8w條資料,但總量...

linux下 rm 刪除非空目錄

rm命令 在linux中建立檔案很容易,系統中隨時會有檔案變得過時且毫無用處。使用者可以用rm命令將其刪除。該命令的功能為刪除乙個目錄中的乙個或多個檔案或目錄,它也可以將某個目錄及其下的所有檔案及子目錄均刪除。對於鏈結檔案,只是刪除了鏈結,原有檔案均保持不變。rm命令的一般形式為 rm 選項 檔案 ...

Linux rmdir命令 刪除空目錄

和 mkdir 命令 建立空目錄 恰好相反,rmdir remove empty directories 的縮寫 命令用於刪除空目錄,此命令的基本格式為 root localhost rmdir p 目錄名 p 選項用於遞迴刪除空目錄。例 1 root localhost rmdir cangls ...