因此,感谢这个网站,我找到了将所有文件从该日期创建的当前日期移动到另一个目录的方法,但有一个我不明白的错误:
Thu Aug 31; 15:05:02; marton;~/Свалени ; $ find . -newermt 20170829 -not -newermt 20180101 -print0 | xargs -0 mv -t /backup/desktop/books/Python/ML-demos/
mv: inter-device move failed: ‘.’ to ‘/backup/desktop/books/Python/ML-demos/.’; unable to remove target: Invalid argument
Thu Aug 31; 15:06:19; marton;~/Свалени ; $
这是有问题的吗?我该如何解决这个错误?
答案1
发生错误是因为您的find
命令找到.
当前工作目录并将其传递给mv
。
如果您只是移动文件(而不是目录),请添加-type f
到find
命令:
find . -type f ...(as before)...
这将过滤掉目录,包括.
目录。
您也可以完全摆脱xargs
:
find . -type f -newermt 20170829 -not -newermt 20180101 \
-exec mv -t /backup/desktop/books/Python/ML-demos/ {} +
答案2
您尝试移动.
,即当前目录。您可以通过将其添加-mindepth
到find
命令中来删除它。首先尝试不通过管道传输到xargs
,看看是否能得到所需的结果。