删除目录下空文件

写脚本操练时经常会创建一些空文件,所以就删除空文件这个小问题操练下,于是有了以下这个小脚本。

# 判断是否是目录,如果是目录,就返回0,否则返回1
is_directory(){
        dir_path=$1
        if [ -d $dir_path ] ;then
                return 0
        else
                echo "$dir_path is not a directory."
                return 1
        fi
}

# 通过 file 命令判断文件是否是空文件
is_empty(){
        file=$1
        file_type=empty
        mark=`file $file | cut -f 2 -d " "`
        if [ "$mark" == "$file_type" ] ;then
                return 0
        else
                return 1
        fi
}

# 遍历目录中的文件,使用逻辑结构,如果是文档是空的,那么就必须执行 rm file 返回
# 值是删除文件的计数。
rm_empty_in_directory(){
        current_dir=$1
        count=0
        for i in `ls $current_dir` ;do
                is_empty $i && rm $i && let "count=$count+1"
        done
        #echo "count in function:$count"
        return $count
}

rm_file_count=0

# 如果没有写入参数,就使用当前目录作为删除的目录。
if [ $# -eq "0" ] ;then
        rm_empty_in_directory $PWD
# 调用函数的返回值也要使用变量$?来获取数值
        temp=$?
        rm_file_count=`echo "$rm_file_count + $temp" | bc`
else
# 写入参数,将参数作为需要删除的目录输入,遍历目录删除。
        for dir in [email protected] ;do
                if is_directory $dir ;then
                        temp=rm_empty_in_directory $dir
                        let "rm_file_count=$temp+$rm_file_count"
                else
                    continue
                fi
        done
fi

echo "removed $rm_file_count files."
时间: 2024-08-13 04:26:17

删除目录下空文件的相关文章

递归删除目录下.svn文件

原文:http://imysqldba.blog.51cto.com/1222376/1104901 ------------------------------------------------------------------------ 在linux下完svn的都碰到过一个这样的问题,怎么一次性删除该目录以及子目录下下所有.svn文件呢?递归删除! 介绍两种方法 1.find和exec结合 find . -name "*.svn" -print -exec rm -rf  {

BAT-使用BAT方法删除目录下0KB文件

@Echo Off For /f "tokens=*" %%i in ('dir /a-d /b /s "*.*"') do ( If "%%~zi"=="0" (Del /q /f "%%i")) Pause

PHP 删除文件夹及其文件夹下所有文件

<?function deldir($dir) {  //先删除目录下的文件:  $dh=opendir($dir);  while ($file=readdir($dh)) {    if($file!="." && $file!="..") {      $fullpath=$dir."/".$file;      if(!is_dir($fullpath)) {          unlink($fullpath); 

删除文件夹及其文件夹下所有文件

/** * 删除文件夹及其文件夹下所有文件 */ public static function deldir($dir) { //先删除目录下的文件: $dh=opendir($dir); while ($file=readdir($dh)) { if($file!="." && $file!="..") { $fullpath=$dir."/".$file; if(!is_dir($fullpath)) { unlink($fu

如何用PHP遍历文件数目 或删除目录下的全部文件?

先说一下基础知识: 文件位置如下图所示: 1.判断是文件还是目录 var_dump(filetype("./aa/bb/cc.txt")); 输出: string(4) "file" var_dump(filetype("./aa"));   输出: string(3) "dir"  2.判断是否是文件(是返回ture) var_dump(is_file("./aa")); 输出bool(false) 3.

递归删除目录下的所有文件

import java.io.File; public class DeleteDirectory { /** * 删除空目录 * @param dir 将要删除的目录路径 */ private static void doDeleteEmptyDir(String dir) { boolean success = (new File(dir)).delete(); if (success) { System.out.println("Successfully deleted empty dir

递归删除目录下的所有文件及子目录下的所有文件

package com.test; import java.io.File; public class FileTest3 { public static void main(String[] args) { // TODO Auto-generated method stub FileTest3.doDeleteEmptyDir("e:\\new_dir1"); String newDir2 = "e:\\Hello"; boolean success = del

php中通过递归实现删除目录下的所有文件

(本文转载于:www.klsele.com.cn) php中通过递归实现删除目录下的所有文件.,有需要的朋友可以参考下. 最近遇到一个实际问题,需要清空制定目录下的所有文件及清空数据库.清空数据库不难,但要如何递归删除一个目录下的所有文件呢. 于是去网上研究了下资料再加上自己琢磨解决了这一问题. 先贴代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <?php function delFile($dirName){     if ($handl

php循环删除目录及目录下的文件

分享两个使用函数:php循环删除目录及目录下的文件和仅删除指定目录下的文件,不删除目录文件夹! 代码一:php循环删除目录及目录下的文件 <?php //循环删除目录和文件函数 function delDirAndFile( $dirName ) { if ( $handle = opendir( "$dirName" ) ) { while ( false !== ( $item = readdir( $handle ) ) ) { if ( $item != ".&