在 Linux shell 脚本中检索最近修改过的子目录?
Posted
技术标签:
【中文标题】在 Linux shell 脚本中检索最近修改过的子目录?【英文标题】:Retrieving the sub-directory, which had most recently been modified, in a Linux shell script? 【发布时间】:2014-05-26 04:27:49 【问题描述】:如何在目录中检索最近修改过的子目录? 我在 Linux 发行版 (Ubuntu) 上使用 shell 脚本。
【问题讨论】:
【参考方案1】:听起来你想要 ls 选项
-t sort by modification time, newest first
并且只显示目录,使用类似这个答案建议Listing only directories using ls in bash: An examination
ls -d */
如果您希望每个目录都列在一行上(如果您的文件/目录名没有换行符或疯狂字符),我会添加 -1
所以总的来说,这应该列出当前目录中的目录,最新修改顶部的次数
ls -1td */
而且只有一个最新的目录:
ls -1td */ | head -n 1
或者,如果您想与特定时间进行比较,您可以使用 find
和 -cmin -cnewer -ctime -mmin -mtime
之类的选项,并且 find 可以处理带有空终止名称选项(例如 -print0
)的疯狂名称(例如换行符、空格等)
【讨论】:
【参考方案2】:子目录修改多少无关紧要。你知道子目录的名字吗?像这样获取它的内容:
files=$(ls subdir-name)
for file in $files; do
echo "I see there is a file named $file"
done
【讨论】:
对我来说这不是无关紧要的。以上是关于在 Linux shell 脚本中检索最近修改过的子目录?的主要内容,如果未能解决你的问题,请参考以下文章
linux脚本,自动备份前一天修改过的文件并且删除7天前的文件