如何在Mac上排队多个文件进行复制?


15

当我在Mac上复制多个文件时,系统会尝试同时复制所有文件。这个问题有两个方面。

首先,当您选择多个文件并复制它们时,它们都会以“全有或全无”的方法进入一个进程,这与数据库中的ACID不同。通常这是不可取的。

此外,当您添加其他复制过程时,系统会尝试同时复制所有内容。

例如,我决定复制一个大文件A,然后再决定复制一个大文件B。这导致两次并行复制操作,而不管“大文件”之一是否也是许多文件的选择。

我不喜欢这样做有几个原因:

  • 当多个复制进程同时运行时,似乎会使其他进程陷入困境。
  • 同样,当同时复制多个文件时,复制过程本身似乎要慢得多。
  • 最后,如果该过程中止,则没有文件到达其目的地。
  • 将文件添加到队列时,它还将立即开始复制,并进一步拖延该过程。
  • 当复制到(本地)网络上的其他计算机或驱动器时,这是一个实际的问题。

结果:A我要首先传输和使用的文件到达所需的时间比所需的时间长得多,并且从LAN上的中央HD复制时,除非所有其他文件也都到达了,我才能使用第一个文件。

因此...如何在Mac上排队多个文件进行复制?需要说明的是:无论选择了多少文件,还是一个一个地添加它们,我都希望它们全部放入一个队列中,一次只能复制一个文件,直到完成队列。

也欢迎使用Bash,尤其是Perl回答!


我真的不明白这个问题。似乎在某种程度上您一次启动了多个独立的复制操作,然后又一次不...?您是否尝试过在同一复制操作中复制所有相关文件,例如,全部选中它们,然后拖动到目标位置;或选择它们,Cmd-C然后Cmd-V在目的地?
丹尼尔·贝克

@Daniel我试图澄清这个问题-这也是我也遇到的一个问题:这是关于启动独立复制操作的。解决方案将是一个队列,您可以在其中放入要复制的文件,然后按顺序处理作业。
slhck 2011年

@slhck怎么办?最后,如果该过程中止,没有文件到达其目的地适用于独立操作?在所有其他文件也都到达之前我不能使用第一个文件是什么意思?
丹尼尔·贝克

1
选择许多文件并复制它们时,这也是一个问题。所有文件构成一个进程,其中的文件无法排队。恕我直言,这也很糟糕。不过,我也想将文件添加到队列中。
Kebman 2011年

实际上,它们是一个接一个地被复制的。您是说它们的复制顺序本质上是随机的?
丹尼尔·贝克

Answers:


8

超影印机

UltraCopier是一个免费的跨平台复制实用程序,目前正在开发中,因此还不是那么整洁。安装后,它就位于菜单栏中。

它管理一个复制列表,使您可以将复制移动作业排队,然后依次进行处理。您还可以定义复制过程优先级以及传输的块大小。

使用新版本,您可以将相似的源和/或目标分组,或者只是始终或永不分组。

在此处输入图片说明


真好!使用!完美的作品!实际上是在考虑编写自己的应用程序时查看了XCode,Cocoa和ObjectiveC。
Kebman 2011年

4

这是一个bash解决方案:

cp file1 dest1; cp file2 dest2

对要复制的文件数量重复此操作。只需继续添加分号和cp命令即可。

你也可以

cp file1 dest1 && cp file2 dest2

在此示例中,仅当文件成功复制之前,该文件才会被复制。

对于文件夹,您可以执行以下操作:

for x in folder/*; do echo "Copying $x"; cp "$x" destdir; done

但是,当您尝试以这种方式复制整个文件夹时,它又被视为一个过程,这是不希望的。我也希望文件夹中的每个文件排队。
Kebman

1
@Kebman:查看我最近的编辑。
Wuffers 2011年

2
请注意该for方法中带有空格和通配符的文件。为了安全起见,我可能会用find -print0管道将其插入xargs -0
slhck 2011年

2

与超级复印机相比,Path Finder 6看起来更易于浏览,并且肯定会产生清晰的提示,此外,它还有更多选择。还有30天的试用期。

但是我正在专业地使用它,所以我说完全值得。

Path Finder 6中的文件操作(YouTube视频)


1
我一直在寻找免费的解决方案,但众所周知路径查找器是一个不错的应用程序。实际上,我认为Finder如此简单以至于您想要第三方高级应用程序时需要第三方应用程序真是可惜。
Kebman 2014年


2

除了此线程中的其他一些复制管理器之外,您可能还想看看ForkLift:http : //www.binarynights.com/forklift/

优点:

  • 打开/关闭排队,
  • FTP + SFTP + Amazon S3 + WEBDav,
  • 一系列方便开发人员使用的便捷同步工具。

缺点:

  • 已付费(尽管在撰写本文时,App Store上有一个特别优惠,但是...),
  • App Store版本缺少功能(哦沙盒)。

0

计划您要移动的东西

  • 在源中创建文件夹的别名
  • 将别名移动到目标文件夹

编写一个查找别名并将其替换为原点的脚本(移动)

启动脚本并进入睡眠状态。


嗨,欢迎来到superuser.com。您发布的内容更像是讨论而不是答案。请不要说这不是讨论论坛,请尝试回答所提出的问题。谢谢!也许您可以编辑答案以使其更具主题性。
sleske 2014年

我不想计划 我只想排队等待文件,然后不加思索地将它们一一移动。如果您已经使用脚本,则创建别名是多余的。另外,如果我知道如何编写脚本,那我早就做了。您是否有一个支持文件排队的脚本示例?
Kebman 2014年

将源路径和目标路径放在“ queue.txt”文本文件中,并用定界符分隔,例如管道|。/ foo / bar / source | / target行的示例。然后猫queue.txt | 同时阅读 做src =“ $(echo” $ l“ | awk -F” |“'{print $ 1}')”; dst =“ $(echo” $ l“ | awk -F” |“'{print $ 2}')”; 回显“从$ src复制到$ dst”;cp -r“ $ src”“ $ dst”; 完成。这是一个非常粗糙的例子。我不建议您像那样赌博,那有很多陷阱。无论如何,如果您尝试过,请先阅读以下内容:devblog.virtage.com/2013/01/…– Ramkam
2014年

0

我遇到了同样的问题,并在应用商店中找到了一个名为“ CopyQueue”的应用。

https://itunes.apple.com/gb/app/copyqueue/id711074010?mt=12

看起来效果很好。只需将要复制的文件夹或文件拖到队列中,它将开始在队列中复制。您可以暂停,重新排列队列优先级,并且我最喜欢的功能之一是单击“验证”以确认复制成功。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.