Mastodon

ditto – bezbolesne kopiowanie w Terminalu

3
Dodane: 11 lat temu

Jeśli przyszło Wam kiedyś kopiować coś przy użyciu aplikacji Terminal, to podejrzewam, że w zdecydowanej większości przypadków używaliście polecenia cp. Stworzony jest on głównie do kopiowania plików, a nie całych struktur, dlatego by skopiować te drugie, trzeba troszkę pokombinować. Okazuje się jednak, że OS X posiada inne narzędzie, które bardzo taki proces może ułatwić.

Chodzi o ditto, które również jest narzędziem pracującym w Terminalu. Jego głównym zadaniem jest kopiowanie całych hierarchi katalogów, jak również tworzenie lub rozpakowywanie archiwów skompresowanych. My zwrócimy uwagę na pierwsze zastosowanie. Okazuje się, że proces kopiowania całej struktury katalogów przy pomocy ditto jest banalnie proste. Wystarczy posłużyć się poniższym schematem:

ditto -V /ścieżka/doFolderu/doSkopiowania /ścieżka/doFolderu/gdzieChcemy/skopiować

-V wyświetli nam informację o aktualnie kopiowanym pliku. Ciekawe jest, że jeśli katalog docelowy nie będzie istniał, to zostanie automatycznie utworzony. W przeciwnym wypadku zawartość katalogu źródłowego zostanie scalona z docelowym. I tutaj mała przestroga – jeśli w folderze docelowym znajdują się pliki o tej samej nazwie, jak w źródłowym, to zostaną one zastąpione. Dlatego przy scalaniu należy się upewnić, czy na pewno będziemy chcieli posłużyć się tą metodą.

Maciej Skrzypczak

Użytkownik sprzętu z nadgryzionym jabłkiem, grafik komputerowy, Redaktor iMagazine.pl. Mastodon: mcskrzypczak@c.im

Zapraszamy do dalszej dyskusji na Mastodonie lub Twitterze .

Komentarze: 3

Hmmm, cp -r skad dokad i jest rekursywnie, są też przełączniki na zachowanie uprawnień, rozwijanie dowiązań, nie zastępowanie (-n) tym podobne. Do bardziej zaawansowanych (aktualizacja kopii z porównaniem i uzgadnianiem katalogów) radzę używać rsync.

do każdego polecenia możesz sobie podejrzeć podręcznik, wpisz po prostu: man cp, a zobaczysz wszystkie dostępne opcje :) Narzędzia unixowe są potężne a kopiowanie przez cp to też kombajn :)