使用 mv,可以对文件进行时间依赖吗?

使用 mv,可以对文件进行时间依赖吗?

假设我有一个特定的时间和日期。我想保留在该日期之前最后编辑的所有文件,但自该日期以来编辑过的所有文件我想保留在mv其他地方。man的页面并未mv直接显示这是可能的mv。我认为以下某种形式应该有效:

ls -t | head -n $number 

其中$number指定自我指定的时间和日期以来已编辑的文件数。然后我可以以某种方式将其提供mvmv这些文件(还没有想出具体如何做到这一点)。这样做的缺点是,我必须计算自我指定的日期和时间以来已编辑了多少个文件。有没有一种方法可以让我只指定日期和时间,然后让我的计算机为我找出需要mv编辑的文件?mv如果没有,那么我将如何完成上面编写的命令以将这些文件名提供给将mv它们全部mv编辑到同一位置?

答案1

find /path/to/dir -mtime +5 -exec mv {} /target/path/ ';'

/path/to/dir会将超过五天的所有文件移至/target/path。

你可以尝试一下看看实际会执行什么:

find /path/to/dir -mtime +5 -exec echo mv {} /target/path/ ';'

请注意,该-mtime参数检查文件的修改时间。看看-ctime-atime查找的联机帮助页了解更多详情。

如果您想以分钟为单位指定时间,请使用-mmin,-cmin和之一-amin

要查找早于特定时间的文件,请使用-代替+,例如-mmin -30

另一种方法是使用xargs( 它将用每个输入行执行一个命令;联机帮助页):

find /path/to/dir -mtime +5|xargs -i echo mv {} /target/path 

(删除“回声”以实际移动东西)

相关内容