#!/bin/sh

#FileName:deleteDir.sh

#Function:Linux下使用Shell脚本删除一个目录下的所有子目录和文件(不可恢复删除且目录下目录名和文件名中没有空格)

#Version:V0.1

#Author:Sunrier

#Date:2012-08-01

CURRPATH=$PWD

#DESTPATH为删除的目标目录(目标目录本身不会删除)

DESTPATH="/home/Sunrier/Trash"

#isNullDir函数判断进入的目录下是否存在下级子目录或者文件

#存在返回1,不存在返回0

isNullDir()

{

local NewCurrentPath=$PWD

local NewDirName=$1

cd $NewDirName

local NewFileList=`ls 2>/dev/null`

# -n string : 如果字符串不为空,则结果为真

if [ -n "$NewFileList" ]

then

echo "目录$NewDirName下列表信息为$NewFileList"

cd $NewCurrentPath

return 1

else

echo "目录$NewDirName为空目录"

cd $NewCurrentPath

return 0

fi

}

if [ "Sunrier" != "$LOGNAME" ]

then

echo "您没有执行权限!请联系管理员!"

exit 1

fi

cd $DESTPATH 2>/dev/null

if [ $? -ne 0 ]

then

echo "没有找到目标目录!"

exit 1

fi

echo "您正准备删除的目录为$DESTPATH"

#不考虑隐藏目录和文件

FileList=`ls 2>/dev/null`

while [ "" != "$FileList" ]

do

echo "当前列表信息为 $FileList"

for pFile in $FileList

do

echo "加载 ${pFile} 中......"

if [ -d "${pFile}" ]

then

echo "检查到 ${pFile} 为目录 "

echo "目录 ${pFile} 处理中......"

注:在Linux的Shell脚本中,调用函数作为判断条件时,函数返回值为0时,if后的条件才为真;否则if后的条件为假!

if isNullDir "${pFile}"

then

echo  "删除目录 ${pFile} 中......"

rm -rf ${pFile}

else

echo "移动目录${pFile}下的所有目录和文件中......"

mv ${pFile}/* . >/dev/null 2>&1

if [ $? -ne 0 ]

then

ModifyTime=`date +%Y%m%d%H%M%S`

mv ${pFile} $ModifyTime

fi

fi

else

echo "检查到 ${pFile} 为文件 "

echo "正在把文件 ${pFile} 的文件名更改为文件名 1 中......"

mv ${pFile} 1 2>/dev/null

fi

if [ -f 1 ]

then

echo "发现文件名为1的文件,正在删除文件1中......"

echo "123456"> 1

rm -rf 1

fi

done

echo "更新新的文件列表中......"

cd $DESTPATH

FileList=`ls 2>/dev/null`

done

if [ $? -eq 0 ]

then

echo "清理成功!"

cd $CURRPATH

exit 0

else

echo "清理失败!"

cd $CURRPATH

exit 1

fi

[cpp] view plain copy

注:去掉一些显示信息

#!/bin/sh

#FileName:deleteDir.sh

#Function:Linux下使用Shell脚本删除一个目录下的所有子目录和文件(不可恢复删除且目录下目录名和文件名中没有空格)

#Version:V0.2

#Author:Sunrier

#Date:2012-08-27

CURRPATH=$PWD

#DESTPATH为删除的目标目录(目标目录本身不会删除)

DESTPATH="/home/Sunrier/Trash"

#isNullDir函数判断进入的目录下是否存在下级子目录或者文件

#存在返回1,不存在返回0

isNullDir()

{

local NewCurrentPath=$PWD

local NewDirName=$1

cd $NewDirName

local NewFileList=`ls 2>/dev/null`

# -n string : 如果字符串不为空,则结果为真

if [ -n "$NewFileList" ]

then

cd $NewCurrentPath

return 1

else

cd $NewCurrentPath

return 0

fi

}

if [ "Sunrier" != "$LOGNAME" ]

then

echo "您没有执行权限!请联系管理员!"

exit 1

fi

cd $DESTPATH 2>/dev/null

if [ $? -ne 0 ]

then

echo "没有找到目标目录!"

exit 1

fi

echo "您正准备删除的目录为$DESTPATH"

#不考虑隐藏目录和文件

FileList=`ls 2>/dev/null`

while [ "" != "$FileList" ]

do

for pFile in $FileList

do

echo "加载 ${pFile} 中......"

if [ -d "${pFile}" ]

then

#注:在Linux的Shell脚本中,调用函数作为判断条件时,函数返回值为0时,if后的条件才为真;否则if后的条件为假!

if isNullDir "${pFile}"

then

rm -rf ${pFile}

else

mv ${pFile}/* . >/dev/null 2>&1

if [ $? -ne 0 ]

then

ModifyTime=`date +%Y%m%d%H%M%S`

mv ${pFile} $ModifyTime

fi

fi

else

mv ${pFile} 1 2>/dev/null

fi

if [ -f 1 ]

then

echo "123456">1

rm -rf 1

fi

done

cd $DESTPATH

FileList=`ls 2>/dev/null`

done

if [ $? -eq 0 ]

then

echo "清理成功!"

cd $CURRPATH

exit 0

else

echo "清理失败!"

cd $CURRPATH

exit 1

fi

//解决目录下目录名和文件名中含有空格的情况

[cpp] view plain copy

#!/bin/sh

#FileName:deleteDir.sh

#Function:Linux下使用Shell脚本删除一个目录下的所有子目录和文件(不可恢复删除)

#Version:V0.3

#Author:Sunrier

#Date:2012-08-29

CURRPATH=$PWD

#DESTPATH为删除的目标目录(目标目录本身不会删除)

DESTPATH="/home/Sunrier/Trash"

#isNullDir函数判断进入的目录下是否存在下级子目录或者文件

#存在返回1,不存在返回0

isNullDir()

{

local NewCurrentPath=$PWD

local NewDirName=$1

cd "$NewDirName"

local NewFileList=`ls 2>/dev/null`

# -n string : 如果字符串不为空,则结果为真

if [ -n "$NewFileList" ]

then

echo "目录$NewDirName下列表信息为$NewFileList"

cd $NewCurrentPath

return 1

else

echo "目录$NewDirName为空目录"

cd $NewCurrentPath

return 0

fi

}

if [ "Sunrier" != "$LOGNAME" ]

then

echo "您没有执行权限!请联系管理员!"

exit 1

fi

cd $DESTPATH 2>/dev/null

if [ $? -ne 0 ]

then

echo "没有找到目标目录!"

exit 1

fi

echo "您正准备删除的目录为$DESTPATH"

#不考虑隐藏目录和文件

#FileList=`ls 2>/dev/null`

FileList=`ls | tr " " "?" 2>/dev/null`

while [ "" != "$FileList" ]

do

echo "当前列表信息为 $FileList"

for pFile in $FileList

do

echo "加载 ${pFile} 中......"

if [ -d "${pFile}" ]

then

echo "检查到 ${pFile} 为目录 "

echo "目录 ${pFile} 处理中......"

#注:在Linux的Shell脚本中,调用函数作为判断条件时,函数返回值为0时,if后的条件才为真;否则if后的条件为假!

if isNullDir "${pFile}"

then

echo  "删除目录 ${pFile} 中......"

rm -rf "${pFile}"

else

echo "移动目录${pFile}下的所有目录和文件中......"

mv "${pFile}"/* . >/dev/null 2>&1

if [ $? -ne 0 ]

then

echo "发现父目录与子目录同名,试图更改父目录目录名......"

ModifyTime=`date +%Y%m%d%H%M%S`

mv "${pFile}" $ModifyTime

fi

fi

else

echo "检查到 ${pFile} 为文件 "

echo "正在把文件 ${pFile} 的文件名更改为文件名 1 中......"

mv "${pFile}" 1 2>/dev/null

fi

if [ -f 1 ]

then

echo "发现文件名为1的文件,正在删除文件1中......"

echo "123456" > 1

rm -rf 1

fi

done

echo "更新新的文件列表中......"

cd $DESTPATH

#FileList=`ls 2>/dev/null`

FileList=`ls | tr " " "?" 2>/dev/null`

done

if [ $? -eq 0 ]

then

echo "清理成功!"

cd $CURRPATH

exit 0

else

echo "清理失败!"

cd $CURRPATH

exit 1

fi

//去掉一些显示信息

[cpp] view plain copy

#!/bin/sh

#FileName:deleteDir.sh

#Function:Linux下使用Shell脚本删除一个目录下的所有子目录和文件(不可恢复删除)

#Version:V0.4

#Author:Sunrier

#Date:2012-08-29

CURRPATH=$PWD

#DESTPATH为删除的目标目录(目标目录本身不会删除)

DESTPATH="/home/Sunrier/Trash"

#isNullDir函数判断进入的目录下是否存在下级子目录或者文件

#存在返回1,不存在返回0

isNullDir()

{

local NewCurrentPath=$PWD

local NewDirName=$1

cd "$NewDirName"

local NewFileList=`ls 2>/dev/null`

# -n string : 如果字符串不为空,则结果为真

if [ -n "$NewFileList" ]

then

cd $NewCurrentPath

return 1

else

cd $NewCurrentPath

return 0

fi

}

if [ "Sunrier" != "$LOGNAME" ]

then

echo "您没有执行权限!请联系管理员!"

exit 1

fi

cd $DESTPATH 2>/dev/null

if [ $? -ne 0 ]

then

echo "没有找到目标目录!"

exit 1

fi

echo "您正准备删除的目录为$DESTPATH"

#不考虑隐藏目录和文件

FileList=`ls | tr " " "?" 2>/dev/null`

while [ "" != "$FileList" ]

do

for pFile in $FileList

do

echo "加载 ${pFile} 中......"

if [ -d "${pFile}" ]

then

#注:在Linux的Shell脚本中,调用函数作为判断条件时,函数返回值为0时,if后的条件才为真;否则if后的条件为假!

if isNullDir "${pFile}"

then

rm -rf "${pFile}"

else

mv "${pFile}"/* . >/dev/null 2>&1

if [ $? -ne 0 ]

then

ModifyTime=`date +%Y%m%d%H%M%S`

mv "${pFile}" $ModifyTime

fi

fi

else

mv "${pFile}" 1 2>/dev/null

fi

if [ -f 1 ]

then

echo "123456" > 1

rm -rf 1

fi

done

cd $DESTPATH

FileList=`ls | tr " " "?" 2>/dev/null`

done

if [ $? -eq 0 ]

then

echo "清理成功!"

cd $CURRPATH

exit 0

else

echo "清理失败!"

cd $CURRPATH

exit 1

fi

linux进入子目录,linux 进入下级目录相关推荐

  1. linux移动子目录到上一目录,linux 把当前目录的一个子目录里的文件移动到另一个子目录里用什么指令...

    linux中将一个文件放到一个文件夹中可以使用mv命令或者cp命令: 1,mv命令是移动或更名现有的文件或目录: 用法为 mv 文件名或者文件夹名 需要移动到的路径 例如: mv test.txt / ...

  2. linux模糊查找子目录,Linux运维知识之linux中模糊查找文件

    本文主要向大家介绍了Linux运维知识之linux中模糊查找文件,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 1.在当前目录下搜索指定文件: find . -name tes ...

  3. linux模糊查找子目录,linux怎么模糊查找一个文件

    在当前目录下搜索指定文件: find . -name test.txt 在当前目录下模糊搜索文件: find . -name '*.txt' 在当前目录下搜索特定属性的文件: find . -amin ...

  4. 【Linux 内核】Linux 内核源码目录说明 ① ( arch 目录 | block 目录 | certs 目录 | crypto 目录 | Documentation 目录 )

    文章目录 一.arch 目录 二.block 目录 三.certs 目录 四.crypto 目录 五.Documentation 目录 在上一篇博客 [Linux 内核]Linux 内核源码结构 ( ...

  5. linux文件目录操作实验报告,Linux操作系统实验4文件和目录操作

    <Linux操作系统>课程实验报告 实验4 文件和目录操作 一.实验目的 1.理解Linux文件系统的结构和目录组织方式: 2.掌握Linux常用目录和文件命令的使用. 二.实验内容与要求 ...

  6. linux 文件目录操作,Linux系统下文件与目录操作

    与其它操作系统一样,在Linux系统下用户的数据和程序也是以文件的形式保存的.所以在使用Linux的过程中,是经常要对文件与目录进行操作的.现在我们就以一个Window用户的立场来学习一下Linux下 ...

  7. linux 复制包括子目录_【Linux分享】Linux常用命令+教程分享

    今天分享分为两部分 :)PART01 Linux常用命令分享/PART02 关于BD面试经验分享    30mins  Linux Command:PART 1 你本可以张口就来.....本篇内容分享 ...

  8. linux .run文件_Linux快捷键及目录结构

    Linux快捷键及目录结构 1.Linux快捷键 历史命令切换 输入history ctrl+p 上 ctrl+n 下 (或者方向键) 光标移动 ctrl+b 向后移动 ctrl+f 向前移动 ctr ...

  9. linux chown命令: 修改文件或目录的所有者或群组

    linux chown命令: 修改文件或目录的所有者或群组 介绍: chown命令可以修改文件(目录)的所有者和群组信息. 语法: chmod [-cfhvR] user[:group] file.. ...

最新文章

  1. 大年初三,过年期间最让你受不了的习俗有哪些?
  2. 常见的数据库端口及查询方法
  3. SaltStack状态导入(include)
  4. python具有一些突出优点_Python具有一些突出优点,它们是:()
  5. Windows下python虚拟环境pip依旧使用全局pip的解决办法
  6. 让人生成功的49个细节
  7. Loadruner压数据库oracle,LoadRunner连接Oracle数据库(转)
  8. python中常用的九种预处理方法
  9. 01_Android应用开发环境_01_android发展史及系统架构
  10. 网页防篡改技术_大数据让档案“活”起来:用区块链技术防篡改,用量子加密技术防盗窃...
  11. Sublime Text快捷键
  12. 情人节送男生什么礼物好,情人节送礼清单
  13. 中国好SaaS广州站:Fundebug勇夺两大奖项
  14. 《我想进大厂》之MQ夺命连环11问
  15. Dynamics 365 窗体中设置可编辑的子网格
  16. springboot项目在cmd窗口运行后台卡顿问题
  17. icon图标制作网站推荐
  18. 算法笔记-CDQ分治
  19. nexus 7 5.1.1 最新系统adb命令行刷机。
  20. 软件测试题库怎么样 这个刷题小程序很适合临时抱佛脚

热门文章

  1. (刷机经验+1)Nexus5的刷机和root
  2. openSUSE解决无法识别WIFI问题
  3. ucore lab3实验报告
  4. C语言中的数据类型转换
  5. 标签设计软件如何批量制作CEPNet码
  6. 8Manage:电子寻源采购管理指南
  7. 饿了么青龙领吃货豆教程10.8更新(附脚本,本地跑)
  8. 【GO】上传Excel并批量保存入库(Gin,Gorm,Excelize)
  9. Intel Skylake (Client) 架构/微架构/流水线 (3) - 乱序执行引擎
  10. linux apache tomcat ajp,详解Tomcat HTTP协议与AJP协议 | 《Linux就该这么学》