Jak ustawić w kolejce wiele plików do skopiowania na komputerze Mac?

15

Kiedy kopiuję wiele plików na komputerze Mac, system próbuje skopiować je wszystkie jednocześnie. Problem jest dwojaki.

Po pierwsze, po wybraniu wielu plików i skopiowaniu ich wszystkie przechodzą w jeden proces z podejściem „wszystko albo nic”, podobnie jak ACID w bazach danych. Często nie jest to pożądane.

Ponadto, gdy dodajesz inne procesy kopiowania, system próbuje skopiować wszystko w tym samym czasie.

Na przykład postanawiam skopiować duży plik A, a później również zdecydować o skopiowaniu dużego pliku B. Powoduje to dwie równoległe operacje kopiowania, niezależnie od tego, czy jeden z „dużych plików” jest również wyborem wielu plików.

Nie podoba mi się to z kilku powodów:

  • Kiedy kilka procesów kopiowania działa jednocześnie, wydaje się, że blokuje inne procesy.
  • Ponadto, gdy kopiowanych jest kilka plików jednocześnie, sam proces kopiowania wydaje się przebiegać znacznie wolniej.
  • I na koniec, jeśli proces zostanie przerwany, żaden z plików nie osiągnie miejsca docelowego.
  • Dodając plik do kolejki, zacznie on również kopiować od razu i jeszcze bardziej pogłębia proces.
  • Jest to prawdziwy problem podczas kopiowania na inne maszyny lub dyski w (lokalnej) sieci.

Wynik: plik A, który chciałem najpierw przesłać i użyć, zajmuje dużo więcej czasu niż potrzeba, a podczas kopiowania z centralnego HD w sieci LAN nie mogę użyć pierwszego pliku, dopóki nie dotrą również wszystkie inne pliki.

Zatem ... Jak ustawić w kolejce wiele plików do skopiowania na komputerze Mac? Wyjaśnienie: Niezależnie od wielu wybranych plików lub dodawanych jeden po drugim, chcę, aby wszystkie były umieszczone w kolejce, która kopiuje tylko jeden plik na raz, aż do zakończenia kolejki.

Odpowiedzi w Bash, a zwłaszcza Perl, są również mile widziane!

Kebman
źródło
Naprawdę nie rozumiem pytania. Częściowo wydaje się, że zaczynasz wiele niezależnych operacji kopiowania naraz, a potem znowu nie ...? Czy próbowałeś skopiować wszystkie odpowiednie pliki w ramach tej samej operacji kopiowania, np. Wybierając je wszystkie, a następnie przeciągając do miejsca docelowego; lub wybierając je Cmd-C, a następnie Cmd-Vw miejscu docelowym?
Daniel Beck
@Daniel Próbowałem wyjaśnić pytanie - to także problem, z którym sam się spotkałem: chodzi o rozpoczęcie niezależnych operacji kopiowania. Rozwiązaniem byłaby kolejka, w której można po prostu umieścić pliki do skopiowania, a zadania będą przetwarzane sekwencyjnie.
slhck
@slhck W jaki sposób I wreszcie, jeśli proces zostanie przerwany, żaden plik docierający do miejsca docelowego nie będzie miał zastosowania do niezależnych operacji? Czego nie mogę użyć pierwszego pliku, dopóki nie dotrą również wszystkie inne pliki. oznaczać?
Daniel Beck
1
Jest to również problem przy wyborze wielu plików i kopiowaniu ich. Wszystkie pliki stanowią jeden proces, w którym nie można ustawić w kolejce plików w nim zawartych. To też IMHO jest złe. Niemniej jednak chciałbym również dodać pliki do kolejki.
Kebman
Są one kopiowane jeden po drugim. Chcesz przez to powiedzieć, że kolejność ich kopiowania jest w zasadzie losowa?
Daniel Beck

Odpowiedzi:

8

UltraCopier

UltraCopier jest darmowym i wieloplatformowym narzędziem do kopiowania, które jest obecnie w fazie rozwoju, więc nie jest jeszcze tak schludne i dopracowane. Po zainstalowaniu znajduje się na pasku menu.

Zarządza listą kopii, która umożliwia kolejkowanie zadań kopiowania lub przenoszenia , które są następnie kolejno przetwarzane. Możesz także określić priorytet procesu kopiowania, a także rozmiar bloku transferu.

Dzięki nowej wersji możesz grupować z podobnym źródłem i / lub miejscem docelowym, albo po prostu zawsze albo nigdy.

wprowadź opis zdjęcia tutaj

slhck
źródło
Ładny! Za pomocą! Działa idealnie! Właściwie sprawdziłem XCode, Cocoa i Objective C zastanawiając się nad napisaniem własnej aplikacji.
Kebman
4

Oto rozwiązanie bash:

cp file1 dest1; cp file2 dest2

Powtórz to dla ilu plików chcesz skopiować. Po prostu dodawaj średniki i cppolecenia.

Ty też możesz to zrobić

cp file1 dest1 && cp file2 dest2

W tym przykładzie plik zostanie skopiowany tylko wtedy, gdy plik przed nim został pomyślnie skopiowany.

W przypadku folderu możesz zrobić coś takiego:

for x in folder/*; do echo "Copying $x"; cp "$x" destdir; done
Wuffers
źródło
Ale kiedy próbujesz skopiować cały folder w ten sposób, jest on ponownie traktowany jako jeden proces, co nie jest pożądane. Chcę też, aby każdy plik w folderze był w kolejce.
Kebman
1
@Kebman: Zobacz moją najnowszą edycję.
Wuffers
2
Z tym forpodejściem zwracaj uwagę na pliki ze spacjami i znakami globowania . Prawdopodobnie zrobiłbym to z find -print0rurką, xargs -0żeby być bezpiecznym.
slhck
2

Path Finder 6 wygląda na łatwiejszy w nawigacji niż ultrakopiarka i zdecydowanie tworzy wyraźną wskazówkę, a ponadto ma znacznie więcej opcji. Jest też 30-dniowy okres próbny.

Ale używam tego profesjonalnie, więc mówię, że warto.

Operacje na plikach w Path Finder 6 (film na YouTube)

TJ Hellmuth
źródło
1
Szukałem darmowego rozwiązania, ale Path Finder to dobra aplikacja. W rzeczywistości myślę, że szkoda, że ​​Finder jest tak uproszczony, że potrzebujesz aplikacji innej firmy, jeśli chcesz zrobić coś na wpół zaawansowanego.
Kebman
2

Alternatywna wyszukiwarka ścieżek Findera zawiera funkcję kolejki kopiowania od wersji 6.

Kolejka przesyłania plików

Dostęp do bieżących operacji na plikach można uzyskać z paska narzędzi lub z osobnego ujednoliconego okna.

Daniel Beck
źródło
2

Oprócz niektórych innych menedżerów kopiowania w tym wątku warto zapoznać się z ForkLift: http://www.binarynights.com/forklift/

Plusy:

  • Włącz / wyłącz kolejkowanie,
  • FTP + SFTP + Amazon S3 + WEBDav,
  • Kilka przydatnych narzędzi do synchronizacji skierowanych do programistów.

Cons:

  • Płatne (choć w chwili pisania tego tekstu jest App Store, ale ...),
  • W wersji App Store brakuje funkcji (o piaskownicy).
LordParsley
źródło
0

Zaplanuj, co chcesz przenieść

  • Utwórz aliasy folderów w źródle
  • Przenieś aliasy do folderu docelowego

Stwórz skrypt, który znajdzie aliasy i zamień je na pochodzenie (przenieś)

Uruchom skrypt i idź spać.

Ramkam
źródło
Cześć, witamy na stronie superuser.com. Czytasz to bardziej jak dyskusję niż odpowiedź. Nie mów, że to nie jest forum dyskusyjne, i spróbuj odpowiedzieć na zadane pytanie. Dziękuję Ci! Może mógłbyś edytować swoją odpowiedź, aby była bardziej tematyczna.
sleske
Nie chcę planować. Chcę tylko ustawiać w kolejce pliki i bez problemu przesuwać je jeden po drugim. Tworzenie aliasów jest zbędne, jeśli używasz już skryptu. Ponadto, gdybym wiedział, jak stworzyć skrypt, już bym go wykonał. Czy masz przykład skryptu obsługującego kolejkowanie plików ?
Kebman
Umieść ścieżki źródłowe i docelowe w pliku tekstowym „queue.txt” oddzielonym separatorem, takim jak potok | Przykład linii / foo / bar / source | / target. Następnie cat queue.txt | podczas gdy czytam l; do src = "$ (echo" $ l "| awk -F" | "'{print 1 $}')"; dst = "$ (echo" $ l "| awk -F" | "'{print $ 2}')"; echo "Kopiowanie z $ src TO $ dst"; cp -r "$ src" "$ dst"; gotowy. To bardzo prymitywny przykład. Nie radziłbym ci grać w takie scenariusze, jest mnóstwo pułapek. W każdym razie, jeśli kiedykolwiek spróbujesz, zacznij od przeczytania tego: devblog.virtage.com/2013/01/…
Ramkam
0

Miałem ten sam problem i znalazłem w sklepie z aplikacjami aplikację o nazwie „CopyQueue”.

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

Wygląda na to, że działa świetnie. Po prostu przeciągnij folder (y) lub plik (i), które chcesz skopiować do kolejki, a rozpocznie się kopiowanie przez kolejkę. Możesz wstrzymać, zmienić kolejność priorytetów, a jedną z moich ulubionych funkcji jest kliknięcie opcji weryfikacji, aby potwierdzić, że kopiowanie powiodło się.

Tris
źródło
0

Istnieje również Mini Copier - interfejs użytkownika wygląda bardzo podobnie do UltraCopier.

Steve Bennett
źródło