ගැඹුරින් කැදැලි සහිත ඩිරෙක්ටරි ලැයිස්තුගත කරන්න.
find . -depth -type d -exec rmdir {} \; 2>/dev/null
(මෙම හරවා යැවීමේ ඇති අදාළ වන බව සටහන find
හුදෙක් කිරීමට, සමස්තයක් ලෙස විධානය rmdir
සඳහා පමණක් යළි-යොමුකිරීම. rmdir
ඔබ අතරමැදි ෂෙල් පතා අවශ්ය කියලා ලෙස සැලකිය යුතු පසුබෑමක්, ඇති වනු ඇත.)
සොයා ගැනීම rmdir
සඳහා -empty
පුරෝකථනය පසු කිරීමෙන් ඔබට හිස් නොවන නාමාවලි වල ධාවනය කිරීමෙන් වළක්වා ගත හැකිය . GNU විසින් විධානය ක්රියාත්මක කිරීමට ආසන්න වන විට නාමාවලිය පරීක්ෂා කරයි, එබැවින් දැන් හිස් කර ඇති නාමාවලි ලබා ගනී.
find . -depth -type d -empty -exec rmdir {} \;
වේගවත් කිරීමට තවත් ක්රමයක් වනුයේ rmdir
ආයාචනා කාණ්ඩගත කිරීමයි. මේ දෙකම මුල් පිටපතට වඩා සැලකිය යුතු වේගයකින්, විශේෂයෙන් සිග්වින් යටතේ විය හැකිය. මම මේ දෙක අතර වැඩි වෙනසක් බලාපොරොත්තු නොවෙමි.
find . -depth -type d -print0 | xargs -0 rmdir 2>/dev/null
find . -depth -type d -exec rmdir {} + 2>/dev/null
කුමන ක්රමය වේගවත්ද යන්න ඔබ සතුව ඇති හිස් නොවන නාමාවලි ගණන මත රඳා පවතී. -empty
කණ්ඩායම් ආයාචනා කිරීමේ ක්රම සමඟ ඔබට ඒකාබද්ධ කළ නොහැක , මන්ද එවිට හිස් නාමාවලි පමණක් අඩංගු නාමාවලි ඒවා find
දෙස බලන විට හිස් නොවේ .
තවත් ක්රමයක් වනුයේ බහු මුරපද ධාවනය කිරීමයි. මෙය වේගවත්ද යන්න බොහෝ දේ මත රඳා පවතී, මුළු ඩිරෙක්ටරි ධූරාවලියම find
ලකුණු අතර තැටි හැඹිලියේ පැවතිය හැකිද යන්න ඇතුළුව .
while [ -n "$(find . -depth -type d -empty -print -exec rmdir {} +)" ]; do :; done
විකල්පයක් ලෙස, zsh භාවිතා කරන්න. මෙම සුදුසුකම් glob F
, හිස්-නොවන බහලුම් තරග, එසේ /^F
හිස් බහලුම් තරග. හිස් නාමාවලි පමණක් අඩංගු නාමාවලි එතරම් පහසුවෙන් ගැලපෙන්නේ නැත.
while rmdir **/*(/N^F); do :; done
( rmdir
හිස් විධාන රේඛාවක් ලැබුණු විට මෙය අවසන් වේ .)