Como enfileirar vários arquivos para copiar em um Mac?

15

Quando copio vários arquivos em um Mac, o sistema tenta copiá-los todos ao mesmo tempo. O problema é duplo.

Primeiro, quando você seleciona vários arquivos e os copia, todos eles entram em um processo com uma abordagem de "tudo ou nada" não muito diferente do ACID nos bancos de dados. Muitas vezes isso não é desejável.

Além disso, quando você adiciona outros processos de cópia, o sistema tenta copiar tudo ao mesmo tempo.

Por exemplo, decido copiar um arquivo grande e A, posteriormente, decido copiar um arquivo grande Btambém. Isso resulta em duas operações de cópia paralela, independentemente de um dos "arquivos grandes" também ser uma seleção de muitos arquivos.

Eu não gosto disso por vários motivos:

  • Quando vários processos de cópia são executados ao mesmo tempo, parece atolar outros processos.
  • Além disso, quando vários arquivos são copiados ao mesmo tempo, o próprio processo de cópia parece muito mais lento.
  • E, finalmente, se o processo for abortado, nenhum dos arquivos chegará ao seu destino.
  • Ao adicionar um arquivo à fila, ele também começará a copiar de uma vez e atrapalha o processo ainda mais.
  • Esse é um problema real ao copiar para outras máquinas ou unidades na rede (local).

Resultado: o arquivo A, que eu queria transferir e usar primeiro, leva muito mais tempo para chegar do que o necessário, e ao copiar de um HD central na LAN, não posso usar o primeiro arquivo até que todos os outros arquivos também tenham chegado.

Assim ... Como faço para enfileirar vários arquivos para copiar em um Mac? Para esclarecer: Independentemente de muitos arquivos serem escolhidos ou adicionados um por um, quero que todos sejam colocados em uma fila que copie apenas um arquivo por vez, até que a fila seja concluída.

Respostas em Bash e especialmente em Perl também são bem-vindas!

Kebman
fonte
Eu realmente não entendo a pergunta. Em parte, parece que você inicia várias operações de cópia independentes de uma só vez e, novamente, não ...? Você tentou copiar todos os arquivos relevantes como parte da mesma operação de cópia, por exemplo, selecionando todos eles e arrastando para o destino; ou selecioná-los, Cmd-Ce depois Cmd-Vno destino?
Daniel Beck
@ Daniel Tentei esclarecer a pergunta - este é um problema que também me ocorreu: trata-se de iniciar operações de cópia independentes. A solução seria uma fila em que você pode simplesmente colocar os arquivos a serem copiados e os trabalhos seriam processados ​​de maneira seqüencial.
slhck
@slhck Como E finalmente, se o processo for abortado, nenhum dos arquivos atingir seu destino se aplica a operações independentes? O que não posso usar o primeiro arquivo até que todos os outros arquivos também tenham chegado. significar?
Daniel Beck
11
Também é um problema ao selecionar muitos arquivos e copiá-los. Todos os arquivos constituem um processo em que não é possível enfileirar os arquivos nele. Isso é IMHO também é ruim. No entanto, eu também gostaria de adicionar arquivos a uma fila.
Kebman
Na verdade, eles são copiados um após o outro. Você quer dizer que a ordem em que são copiadas é essencialmente aleatória?
Daniel Beck

Respostas:

8

UltraCopier

O UltraCopier é um utilitário de cópia gratuito e multiplataforma que está atualmente em desenvolvimento, por isso não é tão limpo e polido ainda. Depois de instalá-lo, ele fica na sua barra de menus.

Ele gerencia uma lista de cópias que permite enfileirar tarefas de cópia ou movimentação , que são processadas sequencialmente. Você também pode definir a prioridade do processo de cópia, bem como o tamanho do bloco da transferência.

Com a nova versão, você pode agrupar com origem e / ou destino semelhante, ou apenas sempre ou nunca.

insira a descrição da imagem aqui

slhck
fonte
Agradável! Usando! Funciona perfeito! Na verdade, procurei XCode, Cocoa e Objective C pensando em escrever meu próprio aplicativo.
Kebman
4

Aqui está uma solução do bash:

cp file1 dest1; cp file2 dest2

Repita isso para quantos arquivos você deseja copiar. Continue adicionando ponto e vírgula e cpcomandos.

Você também pode fazer

cp file1 dest1 && cp file2 dest2

Neste exemplo, o arquivo será copiado apenas se o arquivo anterior tiver sido copiado com êxito.

Para uma pasta, você pode fazer algo assim:

for x in folder/*; do echo "Copying $x"; cp "$x" destdir; done
Wuffers
fonte
Mas quando você tenta copiar uma pasta inteira dessa maneira, ela é tratada como um processo novamente, o que não é desejável. Eu também quero cada arquivo na pasta na fila.
Kebman
11
@ Kebman: Veja minha edição mais recente.
Wuffers
2
Esteja ciente de arquivos com espaços e caracteres brilhantes com a forabordagem. Eu provavelmente faria isso com uma find -print0tubulação xargs -0para estar seguro.
slhck
2

O Path Finder 6 parece mais fácil de navegar do que a ultracopiadora e definitivamente cria uma sugestão clara, além de ter muito mais opções. Também há um teste de 30 dias.

Mas eu estou usando isso profissionalmente, então digo que vale a pena.

Operações de arquivo no Path Finder 6 (vídeo do YouTube)

TJ Hellmuth
fonte
11
Eu estava procurando uma solução gratuita, mas o Path Finder é conhecido por ser um bom aplicativo. Na verdade, acho uma pena que o Finder seja tão simplista que você precise de um aplicativo de terceiros se quiser fazer algo que esteja meio avançado.
Kebman
2

O Path Finder alternativo do Finder inclui uma funcionalidade da fila de cópias desde a versão 6.

Fila de transferência de arquivos

Acesse as operações de arquivo atuais de um item da barra de ferramentas ou de uma janela unificada separada.

Daniel Beck
fonte
2

Além de alguns dos outros gerenciadores de cópias deste segmento, você pode consultar o ForkLift: http://www.binarynights.com/forklift/

Prós:

  • Ativar / desativar filas,
  • FTP + SFTP + Amazon S3 + WEBDav,
  • Conjunto de ferramentas úteis de sincronização voltadas para desenvolvedores.

Contras:

  • Pago (embora, no momento em que escrevo, exista um especial na App Store, mas ...),
  • Faltam recursos na versão da App Store (oh sandbox).
LordParsley
fonte
0

Planeje o que você deseja mover

  • Crie aliases das pastas na fonte
  • Mova os aliases para a pasta de destino

Crie um script que encontre os alias e substitua-os pela origem (mover)

Inicie o script e vá dormir.

Ramkam
fonte
Olá, seja bem-vindo ao superuser.com. Você publica lê mais como uma discussão do que como uma resposta. Por favor, não que este não seja um fórum de discussão e tente responder à pergunta. Obrigado! Talvez você possa editar sua resposta para torná-la mais específica.
sleske
Eu não quero planejar. Eu só quero enfileirar arquivos e movê-los um por um sem pensar. Criar aliases é supérfluo se você já usa um script. Além disso, se eu soubesse fazer um script, já o teria feito. Você tem um exemplo de script que suporta fila de arquivos ?
Kebman
Coloque os caminhos de origem e de destino em um arquivo de texto "queue.txt", separado por um delimitador, como um pipe. Exemplo de uma linha / foo / bar / origem | / destino. Então, gato queue.txt | enquanto lê l; do src = "$ (eco" $ l "| awk -F" | "'{print $ 1}')"; dst = "$ (eco" $ l "| awk -F" | "'{print $ 2}')"; eco "Copiando de $ src para $ dst"; cp -r "$ src" "$ dst"; feito. Esse é um exemplo muito rude. Eu não aconselho você a apostar em scripts assim, existem inúmeras armadilhas. De qualquer forma, se você tentar, comece lendo o seguinte: devblog.virtage.com/2013/01/…
Ramkam
0

Eu tive o mesmo problema e encontrei um aplicativo na loja de aplicativos chamado 'CopyQueue'.

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

Parece funcionar muito bem. Basta arrastar a (s) pasta (s) ou arquivo (s) que você deseja copiar para a fila e ela começará a copiar pela fila. Você pode pausar, reordenar a prioridade da fila e um dos meus recursos favoritos é clicar em verificar para confirmar se a cópia foi bem-sucedida.

Tris
fonte
0

Há também a Mini Copiadora - a interface do usuário é bastante semelhante à UltraCopier.

Steve Bennett
fonte