`
mpxsq
  • 浏览: 15049 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

shell脚本中使用删除操作注意事项

阅读更多

 

错误例子:

FILE_HOME="/home/admin/output/logs"
cd $FILE_HOME
for DIR in `ls $FILE_HOME`   ##1
do
        cd "./$DIR/abc"  ##2
        find . -maxdepth 1 -mmin +3 | xargs rm -rf  ##3
        cd ../..   ##这里使用了相对路径  ##4
done
 这个例子不安全

##1这里判断有目录后,如果此时其中一个目录被另一个进程删除

##2这行执行失败

##3会把当前目录(/home/admin/output/logs)下的所有文件删除

##4 cd ../.. 会到/home/admin/下

下一个循环依照上面相同的逻辑##2这行执行失败,##3把/home/admin下所有文件删除

 

正确的写法

FILE_HOME="/home/admin/output/logs"
for DIR in `ls $FILE_HOME` 
do
	cd "$FILE_HOME/$DIR/abc" && (find . -maxdepth 1 -mmin +3 | xargs -t -n 1000 rm -rf)
done
 

 

1.使用绝对路径

2.使用&&,前一个cd命令执行失败,后一个rm命令不再执行,保证不会误删除

分享到:
评论

相关推荐

    Xray脚本:(Xray-TCP + XTLS)+(Xray-WebSocket + TLS)+ Web构造管理脚本

    64 arm64 ...)支持ipv6only服务器(需自行设置dns64)集成删除阿里云盾和腾讯云盾功能(仅对阿里云和腾讯云服务器有效)使用Nginx作为网站服务使用Xray作为首要分流器使用acme.sh自动申请/更新域名证书支持选择构建...

    SOLARIS高级系统管理员指南

    本书深入介绍和讨论了Solaris系统管理各个方面的概念、方法和注意事项。其主要内容有:邮件服务;NIS+;自动加载程序服务;服务访问工具;应用软件;Shell编程介绍;系统安全。本书可供计算机系统管理、维护人员和...

    zubax_rtems:RTEMS 构建脚本和工具

    本章介绍如何在自定义应用程序中使用此脚本。 请注意,第一次构建需要 Internet 连接,大约需要 40 分钟才能完成。 命令行选项 --cpu 参数:CPU 系列名称。 描述:定义 RTEMS 目标架构。 要求:是 示例:-- --...

    Ubuntu权威指南(2/2)

    5.15.7 在命令行中使用引号 131 5.16 排序 132 第6章 编辑文件 133 6.1 启动vim编辑器 134 6.1.1 创建文件 134 6.1.2 状态行 135 6.2 vim编辑器的两种工作模式 135 6.2.1 输入模式 135 6.2.2 命令模式 135 6.3 保存...

    Ubuntu权威指南(1/2)

    5.15.7 在命令行中使用引号 131 5.16 排序 132 第6章 编辑文件 133 6.1 启动vim编辑器 134 6.1.1 创建文件 134 6.1.2 状态行 135 6.2 vim编辑器的两种工作模式 135 6.2.1 输入模式 135 6.2.2 命令模式 135 6.3 保存...

    Java实现zp大文件解压、合并、复制、删除(30万文件大约2个小时)

    程序测试可用,直接解压导入到工程就可以,bat文件跟shell文件是用于在window跟linux上直接执行的脚本 我把开发的配置文档附上: 1.程序为定时任务,任务执行时间在bin目录下的配置文件mergeFilleUtil.properties中...

    Keychain-Dumper:在iOS设备越狱后检查攻击者可以使用哪些钥匙串项目的工具

    最后,如果您不信任此二进制文件,或者在使用以下步骤转储Keychain项时遇到问题,则可以从源代码构建工具并手动将适当的注意事项签名到keychain_dumper二进制文件的构建中。 顺便说一句,以下说明假定目标设

    Vim用户手册中文版72.pdf

    26.4 在一个shell脚本中使用Vim 第27章 搜索命令和模式语言 27.1 忽略大小写 27.2 绕回文件头尾 27.3 偏移 27.4 多次匹配 27.5 多选一 27.6 字符范围 27.7 字符分类 27.8 匹配一个断行 27.9 例子 第28章 折行 28.1 ...

    Microsoft SQL Server 2005 Express Edition SP3

    如果已在安装过程中使用了默认的命名实例,则将实例指定为“SQLExpress”。 [顶部] 2.3 管理 SQL Server Express 的工具 有关连接到 SQL Server Express 数据库并进行管理的信息,请参阅 Microsoft 知识库文章 ...

    ASP在线作业系统

    加入了js函数isDel用于当删除文件时做提示用在upload.asp页中,加入验证当直接修改传入的作业名参数时使该次作业可以上传的漏洞在control/search.asp页面中添加了searhc.asp的注意事项修正数据库中表homework字段...

    oracle10g课堂练习I(1)

    从 Shell 脚本调用 SQL*Plus 4-13 从 SQL*Plus 调用 SQL 脚本 4-14 初始化参数文件 4-15 简化初始化参数 4-16 查看和修改初始化参数 4-18 数据库启动和关闭 4-19 启动 Oracle 数据库实例 4-20 启动 Oracle ...

    docker-qtum-stake:在容器中运行QTUM qtumd节点的Docker映像,用于轻松进行QTUM放样

    要求x86_64环境中的Docker Python的docker-compose 由于QTUM是PoS,因此您还需要硬币才能下注能够为您的QTUM钱包记住密码的功能注意事项由于QTUM钱包保存在Docker卷中,因此必须注意不要删除容器的命名卷。...

    Oracle DBA workshop1 (中文版)

    动态性能视图:注意事项4-34 小结4-35 练习概览:管理Oracle 实例4-36 5 管理数据库存储结构 课程目标5-2 存储结构5-3 如何存储表数据5-4 数据库块的结构5-5 表空间和数据文件5-6 Oracle 管理文件(OMF) 5-7 表空间中...

    Linux基础知识与系统管理视频.rar

    兄弟连新版Linux教程 3.1 给初学者的建议-注意事项 兄弟连新版Linux教程 3.2 给初学者的建议-服务器管理和维护建议 4 Linux常用命令 4.1.1 Linux常用命令-文件处理命令-命令格式与目录处理命令ls 4.1.2 Linux常用...

    Linux基础知识与系统管理教学课件-pdf.rar

    兄弟连新版Linux教程 3.1 给初学者的建议-注意事项 兄弟连新版Linux教程 3.2 给初学者的建议-服务器管理和维护建议 4 Linux常用命令 4.1.1 Linux常用命令-文件处理命令-命令格式与目录处理命令ls 4.1.2 Linux常用...

    oracle10g课堂练习I(2)

    从 Shell 脚本调用 SQL*Plus 4-13 从 SQL*Plus 调用 SQL 脚本 4-14 初始化参数文件 4-15 简化初始化参数 4-16 查看和修改初始化参数 4-18 数据库启动和关闭 4-19 启动 Oracle 数据库实例 4-20 启动 Oracle ...

    NSIS用户手册(中文版)

    注意事项 环境变量 例子 安装程序的使用 公共选项 卸载程序特殊选项 例子 第四章: 脚本参考 脚本文件格式 变量 用户变量 Var 其他可写的变量 常量 在字符串里使用常量 标记 相对跳转 页面 次序...

    vim user manual ---vim用户手册

    j26.4j 在一个shell脚本中使用Vim jusr 27.txtj 搜索命令和模式 j27.1j 忽略大小写 j27.2j 绕回文件头尾 j27.3j 偏移 j27.4j 多次匹配 j27.5j 多选一 j27.6j 字符范围 j27.7j 字符分类 j27.8j 匹配一个断行 j27.9j ...

    CQ-Unix-Toolkit:CQ Unix工具包

    CQ-Unix-工具包 ...每个操作都包装在单独的独立脚本中,并带有其他用法输出,可轻松执行这些任务。 该工具包仅针对典型的UNIX / POSIX兼容系统使用基本的内置命令,以避免安装通常无法实现或禁止的任何第三方

Global site tag (gtag.js) - Google Analytics