Rya*_*yan 15 linux performance rsync mv file-io
我有一百万个图像需要从一个本地目录移动到另一个本地目录,占用 30GB 的磁盘空间。
什么是最有效的方法来做到这一点?使用mv? 使用cp? 使用rsync? 还有什么?
我需要采取这些:
/path/to/old-img-dir/*
00000000.jpg
--------.jpg ## nearly 1M of them! ##
ZZZZZZZZ.jpg
Run Code Online (Sandbox Code Playgroud)
并将它们移到此处:
/path/to/new/img/dir/
Run Code Online (Sandbox Code Playgroud)
Ric*_*ard 29
rsync 将是一个糟糕的选择,因为它做了大量的客户端/服务器后台工作,其中包括本地和远程系统。
mv可能是最好的选择。如果可能,您应该尝试mv directory_old directory_new而不是mv directory_old/* directory_new/. 通过这种方式,您可以移动一件事而不是一百万件。
Raú*_*udo 14
find src_image_dir/ -type f -name '*.jpg' -print0 | xargs -0r mv -t dst_image_dir/
Run Code Online (Sandbox Code Playgroud)
find -print0withxargs -0允许您在名称中使用空格。xargs -rmv除非有东西要移动,否则不会运行。(mv如果没有提供源文件会抱怨)。mv -t允许您首先指定目标文件,然后指定xargs.顺便问一下,我是否真的需要一次移动如此大量的文件。批处理被高估了。如果我可以在事物产生的那一刻处理它们,我会尽量不积累大量的工作。
如果两个目录驻留在同一个文件系统上,请使用mvDIRECTORY 而不是目录的内容。
如果它们驻留在两个不同的文件系统上,请使用 rsync:
rsync -av /source/directory/ /destination
注意/源头的尾随。这意味着它将复制目录的内容而不是目录本身。如果您不/关闭,它仍会复制文件,但它们将位于名为/destination/directory. 使用 /,文件将位于/destination
rsync如果您以 root 身份运行它或者文件归您所有,则将保持文件所有权。它还将维护mtime每个单独的文件。
| 归档时间: |
|
| 查看次数: |
29340 次 |
| 最近记录: |