【问题标题】:shell script to find only the list of all folders created in last n minutesshell 脚本仅查找最近 n 分钟内创建的所有文件夹的列表
【发布时间】:2013-06-01 04:19:30
【问题描述】:

我想列出一个文件夹中的所有文件夹,这些文件夹是在最近 n 分钟内创建的。它不应包括文件夹内的子文件夹。 我尝试了以下没有用的方法

ls   -d  * | find -cmin -60

请给点建议

提前致谢

【问题讨论】:

标签: linux bash shell ls


【解决方案1】:

例如:

find . -maxdepth 1 -type d -cmin -60 -print | egrep -v '^(\.|\.\.)$' | sed 's/..//'

会查找所有目录,不去子目录,排除...

编辑:现在将打印而不是 ./dirdir

或者,

find . -maxdepth 1 -type d -cmin -60 -printf "%f\n" | egrep -v '^(\.|\.\.)$'

【讨论】:

  • 谢谢...但它包括 .符号,如 ./result ./dir 等。对我来说,只需要目录名称,如结果目录
  • 我想我可以从结果中删除前两个字符以获取仅目录名称的列表...
  • 添加到您的问题 - 正是您拥有的和想要的。编辑答案以剪切前两个字符
  • 仅在目录中的最后 n 分钟内创建的目录名称,以便我可以使用文件夹名称进行一些数据库查询,因为您建议的回复在目录名称之前包含“./”它不能使用,所以我想我可以从结果中删除前两个字符以获取仅目录名称的列表
  • +1 并且您可以避免将egrep-mindepth 选项一起使用,如下所示:find . -mindepth 1 -maxdepth 1 -type d -cmin -60 -printf "%f\n"
【解决方案2】:

这样做更容易

找到 . -type d -cmin -60 -print

【讨论】:

  • 这是打印父目录内的目录,这是问题,请建议一些方法不要打印父目录包含的子目录
  • @Tarai 使用-maxdepth 1 选项仅在当前目录中查找内容
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多