mv'x'和'y'是同一个文件

时间:2019-04-09 07:56:51

标签: linux shell unix

我正在尝试编写一个Shell脚本,将文件从一个目标移动到另一个目标,然后删除早于7天的文件。

但是,我仍然遇到同样的错误:

mv: ‘x’ and ‘y’ are the same file

这是我的命令:

find /opt/files/ -type f -name '*.csv' -mtime +1 -exec mv {} /opt/files/oldCSVFiles/ \;
find /opt/files/oldCSVFiles/ -type f -name '*.csv' -mtime +7 -exec rm {} \;

谢谢!

1 个答案:

答案 0 :(得分:0)

只需跳过文件夹/opt/files/oldCSVFiles/中的那些文件:

find /opt/files/ -type f -name '*.csv' -mtime +1 -not -path "/opt/files/oldCSVFiles/*" -exec mv {} /opt/files/oldCSVFiles/ \;
find /opt/files/oldCSVFiles/ -type f -name '*.csv' -mtime +7 -exec rm {} \;