Come faccio ad accodare più file per la copia su un Mac?


15

Quando copio più file su un Mac, il sistema tenta di copiarli tutti contemporaneamente. Il problema è duplice.

Prima di tutto, quando selezioni più file e li copi, tutti entrano in un processo con un approccio "tutto o niente" non dissimile da ACID nei database. Spesso questo non è desiderabile.

Inoltre, quando si aggiungono altri processi di copia, il sistema tenta di copiare tutto contemporaneamente.

Ad esempio, decido di copiare un file di grandi dimensioni A, quindi in seguito decido di copiare anche un file di grandi dimensioni B. Ciò comporta due operazioni di copia parallele, indipendentemente dal fatto che uno dei "file di grandi dimensioni" sia anche una selezione di molti file.

Non mi piace per diversi motivi:

  • Quando diversi processi di copia vengono eseguiti contemporaneamente, sembra impantanare altri processi.
  • Inoltre, quando vengono copiati più file contemporaneamente, il processo di copia stesso sembra rallentare molto.
  • Infine, se il processo viene interrotto, nessuno dei file raggiunge la sua destinazione.
  • Quando si aggiunge un file alla coda, inizierà anche la copia in una sola volta e rallenterà ulteriormente il processo.
  • Questo è un vero problema quando si copia su altre macchine o unità sulla rete (locale).

Risultato: il file A, che volevo trasferire e utilizzare per primo, impiega molto più tempo per arrivare del necessario e quando si copia da un HD centrale sulla LAN, non posso usare il primo file fino a quando non sono arrivati ​​anche tutti gli altri file.

Quindi ... Come posso mettere in coda più file per la copia su un Mac? Per chiarire: indipendentemente dal fatto che vengano scelti molti file o che vengano aggiunti uno per uno, li voglio tutti messi in una coda che copia solo un file alla volta, fino a quando la coda non viene eseguita.

Anche le risposte in Bash e soprattutto in Perl sono benvenute!


Davvero non capisco la domanda. Sembra in parte che avvii più operazioni di copia indipendenti contemporaneamente, e poi non ...? Hai provato a copiare tutti i file rilevanti come parte della stessa operazione di copia, ad esempio selezionandoli tutti, quindi trascinandoli verso la destinazione; o selezionandoli Cmd-C, quindi Cmd-Va destinazione?
Daniel Beck

@Daniel Ho cercato di chiarire la domanda: anche questo è un problema che ho riscontrato: si tratta di avviare operazioni di copia indipendenti. La soluzione sarebbe una coda in cui è possibile inserire semplicemente i file da copiare e i lavori verranno elaborati in modo sequenziale.
slhck,

@slhck In che modo, infine, se il processo viene interrotto, nessuno dei file raggiunge la sua destinazione si applica alle operazioni indipendenti? Cosa non posso usare il primo file fino a quando non sono arrivati ​​anche tutti gli altri file. significare?
Daniel Beck

1
È anche un problema quando si selezionano molti file e li si copia. Tutti i file costituiscono un processo in cui i file in esso contenuti non possono essere messi in coda. Anche questo è IMHO negativo. Tuttavia, vorrei anche aggiungere file a una coda.
Kebman,

In realtà vengono copiati uno dopo l'altro. Vuoi dire che l'ordine in cui sono copiati è essenzialmente casuale?
Daniel Beck

Risposte:


8

UltraCopier

UltraCopier è un'utilità di copia gratuita e multipiattaforma attualmente in fase di sviluppo, quindi non è ancora così pulita e raffinata. Una volta installato, si trova nella barra dei menu.

Gestisce un elenco di copie che consente di mettere in coda i lavori di copia o spostamento , che vengono quindi elaborati in sequenza. È inoltre possibile definire la priorità del processo di copia e la dimensione del blocco del trasferimento.

Con la nuova versione è possibile raggruppare con sorgente e / o destinazione simili, oppure sempre o sempre.

inserisci qui la descrizione dell'immagine


Bello! Utilizzando! Funziona perfettamente! In realtà ho cercato XCode, Cocoa e Objective C pensando di scrivere la mia app.
Kebman,

4

Ecco una soluzione bash:

cp file1 dest1; cp file2 dest2

Ripeti l'operazione per quanti file vuoi copiare. Continua ad aggiungere punti e virgola e cpcomandi.

Potresti anche fare

cp file1 dest1 && cp file2 dest2

In questo esempio, il file verrà copiato solo se quello precedente è stato copiato correttamente.

Per una cartella, puoi fare qualcosa del genere:

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

Ma quando provi a copiare un'intera cartella in questo modo, viene trattata di nuovo come un processo, il che non è desiderabile. Voglio anche ogni file nella cartella in coda.
Kebman,

1
@Kebman: guarda la mia modifica più recente.
Wuffers,

2
Fai attenzione ai file con spazi e personaggi sconvolgenti con l' forapproccio. Probabilmente lo farei con un find -print0tubo xargs -0per essere al sicuro.
slhck,

2

Path Finder 6 sembra più facile da navigare rispetto all'ultracopier e crea sicuramente un chiaro spunto, inoltre ha molte più opzioni. C'è anche una prova di 30 giorni per questo.

Ma lo sto usando professionalmente, quindi dico che ne vale la pena.

Operazioni sui file in Path Finder 6 (video di YouTube)


1
Stavo cercando una soluzione gratuita, ma Path Finder è noto per essere una buona app. In realtà penso che sia un peccato che Finder sia così semplicistico che hai bisogno di un'app di terze parti se vuoi fare qualcosa di semi-avanzato.
Kebman,

2

Il Finder alternativo Path Finder include una funzionalità di coda di copia dalla versione 6.

Coda di trasferimento file

Accedi alle operazioni di file correnti da un elemento della barra degli strumenti o da una finestra unificata separata.


2

Oltre ad alcuni altri gestori di copie in questo thread, ti consigliamo di dare un'occhiata a ForkLift: http://www.binarynights.com/forklift/

Professionisti:

  • Attiva / disattiva la coda,
  • FTP + SFTP + Amazon S3 + WEBDav,
  • Mazzo di utili strumenti di sincronizzazione rivolti agli sviluppatori.

Contro:

  • A pagamento (anche se al momento della stesura di questo articolo c'è uno speciale sull'App Store ma ...),
  • Nella versione di App Store mancano funzionalità (oh sandbox).

0

Pianifica ciò che vuoi spostare

  • Crea alias delle cartelle nell'origine
  • Sposta gli alias nella cartella di destinazione

Crea uno script che trova gli alias e sostituiscili con l'origine (sposta)

Avvia lo script e vai a dormire.


Ciao e benvenuto su superuser.com. Pubblica più letture come una discussione che come una risposta. Per favore, non che questo non sia un forum di discussione e prova a rispondere alla domanda posta. Grazie! Forse potresti modificare la tua risposta per renderla più in tema.
sleske,

Non voglio pianificare. Voglio solo mettere in coda i file e farli spostare uno per uno senza pensarci. La creazione di alias è superflua se si utilizza già uno script. Inoltre, se avessi saputo realizzare una sceneggiatura, l'avrei già realizzata. Hai un esempio di uno script che supporta l' accodamento dei file ?
Kebman,

Inserisci percorsi di origine e percorsi di destinazione in un file di testo "queue.txt", separato da un delimitatore, come una pipe |. Esempio di linea / foo / bar / source | / target. Quindi cat queue.txt | mentre leggi l; do src = "$ (echo" $ l "| awk -F" | "'{print $ 1}')"; dst = "$ (echo" $ l "| awk -F" | "'{print $ 2}')"; echo "Copia da $ src A $ dst"; cp -r "$ src" "$ dst"; fatto. Questo è un esempio molto grezzo. Non ti consiglierei di scommettere su script proprio così, ci sono tonnellate di insidie. Ad ogni modo, se mai ci provi, inizia leggendo questo: devblog.virtage.com/2013/01/…
Ramkam

0

Ho avuto lo stesso problema e ho trovato un'app sull'app store chiamata 'CopyQueue'.

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

Sembra funzionare alla grande. Basta trascinare la cartella o i file che si desidera copiare nella coda e inizierà a copiare attraverso la coda. Puoi mettere in pausa, riordinare la priorità della coda e una delle mie funzioni preferite è fare clic su Verifica per confermare che la copia ha avuto esito positivo.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.