Розуміння копіювання файлів пакета


0

Під час копіювання файлів пакетів у сценарій оболонки я бачу деякі несподівані результати. Є два взаємопов'язані питання.

  1. У сценарію оболонки у мене є команди, подібні до наступних:

    cp -rp шлях / до / пакет / файл призначення / каталог

Проблема, яку я бачу, полягає в тому, що іноді пакет копіюється в цілому, що я хочу. В іншому випадку пакет "відходить", і лише вміст пакунка потрапляє до пункту призначення / каталогу. Я не бачу тієї картини, через яку це відбувається по-іншому. Зокрема, в сценарій оболонки пакет копіюється в цілому. Але коли я пробую точну команду з терміналу, я отримую лише вміст.

  1. У сценарії оболонки, хоча пакет, здається, копіюється в цілому, це займає дуже багато часу. Як і 20 хвилин, щоб скопіювати файл на 17 МБ на USB-накопичувач. Коли я копіюю той самий пакет через Finder, він копіюється приблизно за хвилину. Потім під час тестування, коли я повторював сценарій, це займає не 20 хвилин, а лише хвилину.

Ці два результати несподівані. Я очікував би одного і того ж результату кожного разу, не змінюючи результатів із вмістом пакета віршів та часом виконання сценарію.

Якісь ідеї?

Відповіді:


1

Я не впевнений у №2, але я підозрюю, що №1 пояснюється тим, що нарізаний косої риски на шляху до файлу. cp -Rp /path/to/Application.app /path/to/destinationбуде копіювати весь пакет, тоді як cp -Rp /path/to/Application.app/ /path/to/destination(зверніть увагу на прорізну косу рису після джерела) буде скопійовано лише вміст.

BTW, ви повинні використовувати cp -Rзамість cp -r- у деяких реалізаціях cpвони однакові, але в деяких версіях нижній регістр має ... дивацтва. Згідно з довідковою сторінкою в OS X:

СУМІДНІСТЬ

Історичні версії утиліти cp мали варіант -r. Ця реалізація підтримує цей варіант; однак його використання сильно не рекомендується, оскільки воно не копіює спеціальних файлів, символічних посилань або файлів.


Я думав, що спробував і без, і без кінцевої косої риски. Але, здається, ви правильно ставитеся до косої косої риски. І це, мабуть, пояснює "іноді це так, а іноді і ні, оскільки сценарії відрізняються. Я розглядаю відповідь на це питання."
Джеффрі Саймон

Знову -R vs -r, я щойно помітив це на сторінці man, і поки -r працює на OS X, почав змінюватися в процесі мого використання.
Джефрі Саймон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.