Linux下如何简单删除/data等空目录

近期遇到一面试题,以为简单所以没加留意,即Linux下如何删除/data的空目录,我用的是
[ -d
$DIR]的方法,下考场以后才发现错了,此法不仅繁琐,而且很容易出错;其实find
有支持空目录的语法,即-empty,这个完全是自己读书不精之过啊,特此笔录备忘
find /data -type d -empty | xargs -exec rmdir;

这个问题很basic,不过还是困扰了我一段时间.(这里主要讨论的是命令行模式下)
我本来觉得应该使用命令 rmdir
但是发现它无法删除非空的目录.
后来发现了原来应该使用命令 rm -rf
目录名
其中参数-f表示force.使用了这个参数就不会提示你是否要删除了.

查找Linux下的空目录技巧

可以用rimraf这个包,相当于Unix下的rm -Rf命令。

算是一篇超简单的php教程了,也入是入门级的东西了,就不多讲了

[ -d $DIR]的方法,下考场以后才发现错了,此法不仅…

代码很土,但也很简单。

var rimraf = require(‘rimraf’);

rimraf(‘/some/directory’, function () {             

    console.log(‘done’); 

});

代码

if [ -z “$1” ]; then
 echo Usage: $0 \<Target directory\>
 exit 1
fi
echo -e Null directory list:
for i in $(find $1 -type d -print)
do
 TMP=$(ls $i)
 if [ “$TMP” = “\.” ]; then
  continue
 elif [ -z “$TMP” ]; then
  echo $i
 fi
done

链接:https://github.com/isaacs/rimraf

 代码如下

图片 1

<?php
// 说明: 删除非空目录的解决方案
function removeDir($dirName)
{
    if(! is_dir($dirName))
    {
        return false;
    }
    $handle =
@opendir($dirName);
    while(($file = @readdir($handle)) !== false)
    {
        if($file != ‘.’ && $file != ‘..’)
        {
            $dir = $dirName . ‘/’ . $file;
            is_dir($dir) ? removeDir($dir) : @unlink($dir);
        }
    }
    closedir($handle);
     
    return rmdir($dirName) ;
}
?>

还有很多的方法,这里就不介绍了,其实程序中的 unlink
删除文件,而rmdir删除此目录。

相关文章