错误例子:
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脚本是一种在Unix/Linux操作系统中使用的编程语言,它允许用户通过命令行界面执行一系列操作,实现自动化任务处理。作为学习Shell脚本的指南,这本书籍旨在帮助读者深入理解Shell脚本语言的原理,掌握编写高效...
文件名列表中的`shell脚本100例.pdf`可能包含这些实例的详细步骤和代码,覆盖了文件操作(如创建、删除、移动、复制)、系统管理(如启动服务、监控进程)、文本处理(如查找、替换、排序)以及网络操作(如下载、...
最后,`readme.txt`文件通常是提供关于这些脚本用途、使用方法和注意事项的文档。它可能会包含如何运行脚本、需要的权限、环境变量设置等信息,对理解和使用这些脚本至关重要。 总的来说,这些Shell脚本构成了一套...
- **注意事项**: - 当变量名可能与其他文本混淆时,使用花括号`{}`明确变量边界。 - 示例: `echo "this is the ${num}nd"`。 - **系统预定义变量**: - 系统会自动设置一些预定义变量,例如`$USER`, `$HOME`等。 ...
- 在Shell脚本调试中最基础也是最常用的方法之一就是使用`echo`命令来输出变量值或者关键信息。 - `echo`命令可以用来显示字符串或变量值,非常适用于快速查看脚本执行过程中的状态变化。 **示例:** ```bash echo ...
#### 四、注意事项 - **变量定义**:Linux下的Shell脚本定义变量时,变量名与等号之间不能有空格。 - **特殊字符**:脚本中某些特殊字符(如反引号`)需特别注意,避免误用其他符号导致错误。 - **适用场景**:该...
首先,`READ.md`文件通常用于提供项目简介、使用说明或注意事项。在这个场景下,它可能包含了如何运行这些脚本、它们的功能以及可能遇到的问题和解决方法。 `server.sh`脚本可能是用于启动和管理Java服务的。在Java...
题目要求使用Shell脚本删除指定文件中包含“ServerName abc.com”的行及其上一行。这里的“指定行上一行”是指紧跟在含有特定模式的行之上的那一行。 #### 知识点二:`sed`命令基础介绍 `sed`(stream editor)是...
在Windows批处理脚本中,可以使用`FORFILES`命令来选择并操作指定日期之前的文件。例如,以下脚本将删除指定目录下7天前的所有.log文件: ```batch @echo off setlocal enabledelayedexpansion set "logPath=...
《UNIX Shell 实例精解》是一本深入探讨UNIX操作系统中Shell编程的经典著作,它涵盖了从基础到高级的各种Shell脚本编写技巧。这本书旨在帮助读者掌握如何利用Shell脚本提高工作效率,自动化日常任务,并理解Unix/...
该文档是关于如何使用Shell脚本自动化安装MySQL 5.5.30的教程。在Linux环境下,通过Shell脚本来安装MySQL可以简化手动配置的过程,提高效率。以下是脚本中的关键知识点: 1. **锁文件机制**:脚本首先检查是否存在...
#### 三、注意事项 - **安全性**:在执行任何脚本之前,请确保备份重要数据,避免意外删除重要文件。 - **兼容性**:确保使用的脚本和批处理文件适用于当前的操作系统版本。 - **法律法规**:使用此类工具时,请...
#### 六、注意事项 1. **语法问题**:在`while`循环的条件判断部分,建议使用双中括号`[[i -eq 0]]`。 2. **安全性**:直接使用用户输入进行文件操作可能会带来安全隐患。例如,在改变目录或删除文件时,应该对用户...
最后,了解shell脚本的最佳实践和安全注意事项也是必不可少的。这包括避免命令注入攻击、正确处理用户输入、使用适当的权限控制以及理解shell的陷阱和限制。 总之,《LINUX与UNIX SHELL编程指南》全面覆盖了从入门...
#### 安全注意事项 1. **权限控制**:确保脚本运行时使用的用户具有适当的权限,避免潜在的安全风险。 2. **数据备份**:在删除任何配置之前,脚本会自动备份相关文件,以防意外丢失。 3. **输入验证**:对用户输入...
在这个项目中,我们可以学到如何使用shell脚本进行文件操作、用户交互以及数据管理。 首先,shell脚本是基于Unix/Linux操作系统的一种命令行脚本语言,它允许用户通过编写一系列的命令来执行自动化任务。在本项目中...
这个文件很可能包含了关于源代码包的详细说明,可能涵盖如何运行示例脚本、需要注意的事项以及对书中各章节的对应关系等。 4. **中文说明.txt**: 这个文件为中文用户提供了更方便的理解,可能会包含对源代码的...
### Linux自动备份MySQL数据库并上传到FTP服务器上Shell脚本详解 #### 一、脚本概述 本脚本主要用于在Linux环境下实现MySQL数据库的自动备份,并将备份文件上传至指定的FTP服务器。对于需要定期备份MySQL数据库的...