linux - 使用 shell 或 bash 脚本根据目录名称删除多个目录的脚本

标签 linux bash shell scripting delete-file

我正在尝试编写一个 shell 脚本,它根据目录名称而不是上次修改时间删除目录及其内容。

我在 /tmp/ 位置有以下目录

2015-05-25
2015-05-26
2015-05-27
2015-05-28
2015-05-29
2015-05-30
2015-05-31

现在我想删除 2015-05-29 之前的所有目录。所有目录的最后修改日期都相同。

谁能推荐一下?

最佳答案

一种直接但不灵活的方式(在 bash 中)是:

rm -rf 2015-05-{25..29}

一种更灵活的方式将涉及一些编码:

 ls -d ./2015-* | sort | sed '/2015-06-02/,$d' | xargs rm -r
  1. 按照名称模式 2015-* 对所有目录进行词法排序
  2. 使用“sed”删除 2015 年 6 月 2 日(含)之后的所有文件
  3. 使用'xargs'删除剩余的

关于linux - 使用 shell 或 bash 脚本根据目录名称删除多个目录的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30567389/

相关文章:

linux - 将管道输入转储到文件的简单方法是什么? (Linux)

linux - Jpegoptim 导致图像消失

linux - unix中 "../"的含义是什么?

shell - 在 golang 中获取一个文件并在每个列出的行之前运行一个命令

java - 连续运行shell脚本时JVM进入休眠状态

php - 使用 PHP 执行 .exe 文件

bash:如何传递包含特殊字符的密码

linux - 为什么以下作业调度命令会抛出不明确的重定向错误?

bash - 是否可以在使用原始脚本的同时运行重复的 bash 脚本?

Linux shell : unexpected EOF while looking for matching `"'