【发布时间】:2016-11-29 15:55:23
【问题描述】:
我想首先检查我的源位置上的文件是否在日期范围内:如果是,则复制 else 跳过并检查下一个文件。 有人可以帮忙,因为我是 shell 脚本的新手。
【问题讨论】:
-
我不明白你的剧本。要查找的 -newrmt 参数是什么?日期是文件名的一部分还是搜索最后修改日期?
-
@Derlin,这是一个 GNU 扩展;检查
-newerXY的手册页。 -
请注意,
find不会找到不存在的文件。您可以通过添加-type f排除目录(等),以便仅找到文件。您的引用符号不正确。仅当文件名不包含空格(或制表符或换行符)时,使用for表示法才有效。记得引用变量的用途;请记住在日期变量前面加上$。一般来说,如果你的代码能正常工作,你会得到最好的响应——你的代码没有运行(无效的语法)。 -
顺便说一句,在 shell 中,“清晰度”通常需要仅次于正确性:对读者来说看起来最简单的东西往往是错误的(尽管经常以逃避简单测试但随后出现的方式出现) ;避免语言中隐藏的陷阱往往需要了解和使用为此目的而存在的成语体。
-
您可以使用
find查找某个日期范围内的文件。