У мене на пайці 1 на папці "Музика" папка є 100 Гб. У мене на пайці 2 на папці "Музика" є папка, вона становить 116 Гб. Це найновіша версія. Як скопіювати папку "Музика" з Диска 2 на Диск 1 без необхідності переписувати кожен окремий файл?
У мене на пайці 1 на папці "Музика" папка є 100 Гб. У мене на пайці 2 на папці "Музика" є папка, вона становить 116 Гб. Це найновіша версія. Як скопіювати папку "Музика" з Диска 2 на Диск 1 без необхідності переписувати кожен окремий файл?
Відповіді:
Параметр злиття з’явиться, лише якщо ви копіюєте (а не переміщуєте) папку. Переконайтесь, що ви тримаєте option, перетягуючи нову папку до місця розташування старої папки. Крім того, використання ⌘+ cдля копіювання нової папки та ⌘+ vнаклеювання на стару папку повинні дати вам можливість об'єднати файли.
rsync
натомість
Це класичний випадок використання rsync:
rsync -av /source-path/source-dir /destination-path
rsync буде копіювати лише нові та змінені файли на нове місце.
Важливо зрозуміти, як функціонує кінець косої риски на аргументі джерела. Якщо є косою косою рисою, то вміст / source-path / source-dir буде скопійовано до місця призначення . Якщо немає косої косої риси, тоді джерело dir буде скопійовано до пункту призначення, а його вміст буде іншим рівнем вниз в ієрархії призначення.
Тож, якщо ви хочете скопіювати один шлях на інший, включіть проріз наступного рівня:
rsync -av /sourcepath/sourcedir/ /duplicatpath/sourcedir/
ОНОВЛЕННЯ
Спершу встановіть coreutils. Біжи brew install coreutils
. Якщо у вас не brew
встановлено ... поверніться до windows!
Перевірте, чи cp --version
виводиться версія cp (GNU coreutils) 8. ^^
Тоді у вас буде правильна cp
версія і -u
прапор запрацює.
Перевірте cp
команду. Використовуйте man cp
та читайте параметри. Ви можете зробити щось на кшталт:
cp -r -u ~/source ~/destination
-R, -r , --рекурсивні: каталоги копіюють рекурсивно
-u , --update: копіюють лише тоді, коли файл SOURCE новіший, ніж цільовий файл, або коли відсутній файл призначення
-p такий же, як --preserve = режим, право власності , часові позначки
-v --вербоза: поясніть, що робиться
Отже, якщо ви хочете скопіювати файли з папки завантаження / музики, щоб сказати, що ваша папка " Музика / нова папка", ви зробите щось таке:
Це об'єднало б вміст цих двох папок, і якщо два файли з тим самим іменем та контуром існують, це збереже найновіший на основі часової позначки.
cp -ruvp ~/Downloads/music/* ~/Music/new/
brew install coreutils
для отримання правильної cp
версії.
Не впевнений, чому для мене за замовчуванням кнопка злиття левів не відображається. Але я закінчив використовувати ditto
. Знайдено тут: https://superuser.com/a/221599/102789