找到匹配的文件并更改目录名路径

找到匹配的文件并更改目录名路径

我需要找到一种非常有效的方法,将匹配 -mtime 的文件从一个目录树移动到另一个目录,并维护尚不存在的相同子目录路径。

例如。将 /dirA/subdir1/subdir2/filename 移动到 /dirB/subdir1/subdir2/filename

其中 subdir1/subdir2 在移动时可能存在于 dirB/ 下,也可能不存在。

高效意味着在下一个冰河时代(最好是 24 小时内)之前在包含数百万个文件的树上完成此操作。

我想到了 Rsync,但有人说它对于这种匹配的单文件调用并不是那么有效。

如果这是在同一个日志文件系统中,那么文件移动是否只是文件系统目录元数据的操作,而不是实际的块重写,从而效率更高?

答案1

基准 rsync。如果没有成功,请尝试:

find /dirA -mtime $whatever -print |
  xargs tar -cpf - |
  { cd /dirB && tar -xvf -; }

相关内容