根据创建日期移动文件

时间:2012-09-04 20:58:24

标签: regex linux shell

我遇到了以下命令的问题,该命令会将超过13天的文件从/ unpack移动到/ storage。

find /home/user/private/data/unpack/* -mtime +13 -exec mv {} /home/user/private/data/unpack/storage/ \;

但是,如果我将这些文件保存在子文件夹中的/ storage文件夹中,则上述命令会将所有这些文件从其文件夹中移回/ storage

我搜索了一种从find命令中完全排除/存储的方法,并作为一种方法进行了彻底的修剪。我仍然是linux和regex的新手,所以仍然没有运气让自己工作。

为那个有时间帮助的专业人士交叉手指。

2 个答案:

答案 0 :(得分:0)

这可能对你有用(它是一行没有结尾\个字符的那一行):

find /home/user/private/data/unpack/* \
     -mtime +13 \
     \( ! -regex '/home/user/private/data/unpack/storage/.*' \) \
     -exec mv {} /home/user/private/data/unpack/storage/ \;

答案 1 :(得分:0)

知道这是一个老帖子,但你试试这个

find /home/user/private/data/unpack/* -mtime +13 ! -path /home/user/private/data/unpack/storage/* -exec mv {} /home/user/private/data/unpack/storage/ \;

这应该有效。

很抱歉没有抓到其他命令