linux按时间批量移动文件

发布网友 发布时间:2022-04-23 02:09

我来回答

3个回答

热心网友 时间:2023-07-16 03:26

find /data/paic/backup提交问题/aaa -mtime -day1 -mtime +day2 -name "abc_*.txt" -print0 | xargs -I {} mv {} /data/paic/backup/201303/

查找day1天内day2天前的文件,具体天数需要仔细测试调整一下了。。

比如今天是2013-12-3

find /data/paic/backup提交问题/aaa -mtime -4 -mtime +2 -name "abc_*.txt" | xargs -I {} ls -lrt {}

查找/data/paic/backup提交问题/aaa 目录下2013-11-29到2013-12-01号的名字符合 abc_*.txt的文件


-mtime modified time

-atime access time

-ctime change time

追问你好,谢谢你。再问个问题,上面的那个时间指的是文件夹的时间还是文件的时间?

追答文件

热心网友 时间:2023-07-16 03:26

给你一个思路,你改改:

ls -l in*|grep 2012-10-23|awk '{printf "mv ";printf $8;printf " ../"}'|sh

第一个语句ls出需要的文件,用-l列出详细信息,其中有时间一列,后面grep对其进行搜索适配,得到需要日期的文件

grep 2012-10-23 查出对应日期的文件

awk句,形成一个shell命令,我这边的例子形成的命令是 mv in010_G_002_326001_20121023.s ../。$8是ls -l的第8个部分,即文件名

最后将形成的命令给sh即shell执行

热心网友 时间:2023-07-16 03:27

我的思路是用find 找到你目标目录 -exec
eg:
find /data/paic/backup提交问题/ -name xxxx -ctime +365 -type f -exec rm{} /date/paic/backup/201303/ \;

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com