`
mpxsq
  • 浏览: 15527 次
  • 性别: 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命令不再执行,保证不会误删除

分享到:
评论

相关推荐

    shell脚本学习指南pdf

    Shell脚本是一种在Unix/Linux操作系统中使用的编程语言,它允许用户通过命令行界面执行一系列操作,实现自动化任务处理。作为学习Shell脚本的指南,这本书籍旨在帮助读者深入理解Shell脚本语言的原理,掌握编写高效...

    shell脚本100例-详细高清版

    文件名列表中的`shell脚本100例.pdf`可能包含这些实例的详细步骤和代码,覆盖了文件操作(如创建、删除、移动、复制)、系统管理(如启动服务、监控进程)、文本处理(如查找、替换、排序)以及网络操作(如下载、...

    Shell脚本创建SFTP和FTP账户

    最后,`readme.txt`文件通常是提供关于这些脚本用途、使用方法和注意事项的文档。它可能会包含如何运行脚本、需要的权限、环境变量设置等信息,对理解和使用这些脚本至关重要。 总的来说,这些Shell脚本构成了一套...

    Linux_shell脚本入门教程.pdf

    - **注意事项**: - 当变量名可能与其他文本混淆时,使用花括号`{}`明确变量边界。 - 示例: `echo "this is the ${num}nd"`。 - **系统预定义变量**: - 系统会自动设置一些预定义变量,例如`$USER`, `$HOME`等。 ...

    Shell脚本调试技术

    - 在Shell脚本调试中最基础也是最常用的方法之一就是使用`echo`命令来输出变量值或者关键信息。 - `echo`命令可以用来显示字符串或变量值,非常适用于快速查看脚本执行过程中的状态变化。 **示例:** ```bash echo ...

    Linux下定时备份MySQL数据库的Shell脚本.pdf

    #### 四、注意事项 - **变量定义**:Linux下的Shell脚本定义变量时,变量名与等号之间不能有空格。 - **特殊字符**:脚本中某些特殊字符(如反引号`)需特别注意,避免误用其他符号导致错误。 - **适用场景**:该...

    1024_shell脚本一键部署.zip

    首先,`READ.md`文件通常用于提供项目简介、使用说明或注意事项。在这个场景下,它可能包含了如何运行这些脚本、它们的功能以及可能遇到的问题和解决方法。 `server.sh`脚本可能是用于启动和管理Java服务的。在Java...

    shell 删除指定行上一行

    题目要求使用Shell脚本删除指定文件中包含“ServerName abc.com”的行及其上一行。这里的“指定行上一行”是指紧跟在含有特定模式的行之上的那一行。 #### 知识点二:`sed`命令基础介绍 `sed`(stream editor)是...

    清理window电脑、服务器日志bat脚本

    在Windows批处理脚本中,可以使用`FORFILES`命令来选择并操作指定日期之前的文件。例如,以下脚本将删除指定目录下7天前的所有.log文件: ```batch @echo off setlocal enabledelayedexpansion set "logPath=...

    《UNIX Shell 实例精解》用到的脚本

    《UNIX Shell 实例精解》是一本深入探讨UNIX操作系统中Shell编程的经典著作,它涵盖了从基础到高级的各种Shell脚本编写技巧。这本书旨在帮助读者掌握如何利用Shell脚本提高工作效率,自动化日常任务,并理解Unix/...

    shell脚本自动安装mysql-5.5.30.pdf

    该文档是关于如何使用Shell脚本自动化安装MySQL 5.5.30的教程。在Linux环境下,通过Shell脚本来安装MySQL可以简化手动配置的过程,提高效率。以下是脚本中的关键知识点: 1. **锁文件机制**:脚本首先检查是否存在...

    使用脚本和批处理清除电脑中的痕迹的代码.pdf

    #### 三、注意事项 - **安全性**:在执行任何脚本之前,请确保备份重要数据,避免意外删除重要文件。 - **兼容性**:确保使用的脚本和批处理文件适用于当前的操作系统版本。 - **法律法规**:使用此类工具时,请...

    Shell菜单程序源代码

    #### 六、注意事项 1. **语法问题**:在`while`循环的条件判断部分,建议使用双中括号`[[i -eq 0]]`。 2. **安全性**:直接使用用户输入进行文件操作可能会带来安全隐患。例如,在改变目录或删除文件时,应该对用户...

    LINUX与UNIX SHELL编程指南

    最后,了解shell脚本的最佳实践和安全注意事项也是必不可少的。这包括避免命令注入攻击、正确处理用户输入、使用适当的权限控制以及理解shell的陷阱和限制。 总之,《LINUX与UNIX SHELL编程指南》全面覆盖了从入门...

    php管理nginx虚拟主机shell脚本__1.docx

    #### 安全注意事项 1. **权限控制**:确保脚本运行时使用的用户具有适当的权限,避免潜在的安全风险。 2. **数据备份**:在删除任何配置之前,脚本会自动备份相关文件,以防意外丢失。 3. **输入验证**:对用户输入...

    shell编程 CD数据库

    在这个项目中,我们可以学到如何使用shell脚本进行文件操作、用户交互以及数据管理。 首先,shell脚本是基于Unix/Linux操作系统的一种命令行脚本语言,它允许用户通过编写一系列的命令来执行自动化任务。在本项目中...

    UNIX shell范例精解(第4版) -- 源代码

    这个文件很可能包含了关于源代码包的详细说明,可能涵盖如何运行示例脚本、需要注意的事项以及对书中各章节的对应关系等。 4. **中文说明.txt**: 这个文件为中文用户提供了更方便的理解,可能会包含对源代码的...

    Linux自动备份MySQL数据库并上传到FTP服务器上shell脚本

    ### Linux自动备份MySQL数据库并上传到FTP服务器上Shell脚本详解 #### 一、脚本概述 本脚本主要用于在Linux环境下实现MySQL数据库的自动备份,并将备份文件上传至指定的FTP服务器。对于需要定期备份MySQL数据库的...

Global site tag (gtag.js) - Google Analytics