Подготовьте выставочную подборку для печати

LinuxBeginner
Практиковаться сейчас

Введение

FRAME готовит районную фотовыставку. Типографии нужны выбранные снимки под согласованными выставочными именами. В двух входных папках есть IMG_0001.jpg, но сцены разные. Копирование всего или сведение этих имён в одну папку даст неверную коллекцию.

Вы сохраните оригиналы, создадите явную связь источников и назначений, безопасно обработаете существующее назначение и откроете архив из отдельного каталога получателя. Нужна только базовая работа в терминале. Команды и пути объясняются до применения; сценарии и знания фотографии не требуются.

Для команд используйте Workstation, для снимков — Photo Desk. Все фотографии — небольшие учебные изображения CC0 с источниками в просмотрщике. Входные имена вымышлены и не обозначают авторство. Это передача файлов; разрешение, цветовые профили и профессиональная подготовка к печати не входят в задачу.

Сохраните две одноимённые фотографии

На этом шаге вы определите выбранные снимки и скопируете два разных одноимённых файла в разные места выставки.

Начните в Photo Desk. Откройте Sample: подсолнухи — отдельный образец настоящего изображения. Откройте Sources, нажмите на каждый IMG_0001.jpg, чтобы увидеть полную фотографию, и вернитесь кнопкой «Назад» браузера. У Ada мост, у Ben круглая лодка. Имя камеры само по себе не определяет снимок.

Куратор утвердил ровно эти связи. Слева пути относительно source/, справа — относительно work/print-set/:

Выбранный источник Выставочное назначение Изображённая сцена
ada/IMG_0001.jpg Water/01-ada.jpg Мост
ben/IMG_0001.jpg Water/02-ben.jpg Круглая лодка
ada/Quiet Water.jpg Details/03-water.jpg Водопад

Пробный неотобранный снимок, личные заметки и образец не должны попасть в передачу. Источники можно читать, но все предоставленные байты сохраняются. Создавайте обычные копии, а не ссылки на другой каталог.

Перейдите в Workstation. pwd выводит текущий каталог, cd меняет его. Начальный каталог должен быть /home/labex/project/print-studio. При необходимости вернитесь по явному пути:

cd /home/labex/project/print-studio
pwd
/home/labex/project/print-studio

ls показывает содержимое каталога. Косая черта в source/ada разделяет уровни. Эти относительные пути отсчитываются от текущего каталога:

ls source/ada
ls source/ben

В обоих есть IMG_0001.jpg, но записи находятся в разных каталогах. mkdir -p создаёт недостающие родительские каталоги и допускает уже существующие. Создайте две зоны назначения:

mkdir -p work/print-set/Water work/print-set/Details

cp копирует источник в назначение, не перемещая оригинал. -i спрашивает перед заменой существующего назначения, -v показывает копируемое. -- завершает параметры. Заключайте пути в кавычки, чтобы имя с пробелами оставалось одним аргументом. Здесь каждое назначение — полное новое имя файла, а не только каталог:

cp -iv -- "source/ada/IMG_0001.jpg" "work/print-set/Water/01-ada.jpg"
cp -iv -- "source/ben/IMG_0001.jpg" "work/print-set/Water/02-ben.jpg"

Для нового назначения вывод связывает источник и назначение. При повторе на вопрос о перезаписи введите n, нажмите Enter и сравните существующие байты. Знакомое имя не повод отвечать «да».

cmp сравнивает байты файлов. Отсутствие вывода означает совпадение; различие даёт сообщение и ненулевой код выхода. Проверьте обе связи:

cmp -- "source/ada/IMG_0001.jpg" "work/print-set/Water/01-ada.jpg"
cmp -- "source/ben/IMG_0001.jpg" "work/print-set/Water/02-ben.jpg"

Вернитесь в Photo Desk, откройте Staging и при необходимости обновите. Откройте оба снимка. Под разными именами назначения должны отдельно показываться мост и лодка. Сообщение об успешной копии не заменяет проверку настоящих изображений и их соответствия.

Безопасно разрешите конфликт назначения

На этом шаге вы отклоните неверную перезапись, поймёте доказательство и завершите подборку. Продолжайте в том же терминале Workstation.

Имя назначения — обещание типографии. Чтобы понять важность запроса, намеренно предложите скопировать лодку Ben поверх моста Ada. Следующая команда — специальное упражнение с конфликтом. На вопрос о перезаписи введите n и нажмите Enter:

cp -iv -- "source/ben/IMG_0001.jpg" "work/print-set/Water/01-ada.jpg"

Мост должен сохраниться. Сравните предложенную лодку с защищённым назначением:

cmp -- "source/ben/IMG_0001.jpg" "work/print-set/Water/01-ada.jpg"

Ожидается сообщение differ. Ненулевой выход намеренный: предложенный источник не относится к этому назначению. Теперь подтвердите, что назначение всё ещё соответствует согласованному источнику:

cmp -- "source/ada/IMG_0001.jpg" "work/print-set/Water/01-ada.jpg"

Отсутствие вывода подтверждает, что отказ сохранил мост. Правило: сначала отклонить существующее назначение, сравнить с нужным источником и оставить только при совпадении. При различии проверьте утверждённое соответствие до замены. Повтор имени камеры не означает разрешение.

Завершите третью связь. Кавычки вокруг Quiet Water.jpg защищают пробел:

cp -iv -- "source/ada/Quiet Water.jpg" "work/print-set/Details/03-water.jpg"
cmp -- "source/ada/Quiet Water.jpg" "work/print-set/Details/03-water.jpg"

Проверьте обычное повторение первой копии. На вопрос ответьте n, затем сравните:

cp -iv -- "source/ada/IMG_0001.jpg" "work/print-set/Water/01-ada.jpg"
cmp -- "source/ada/IMG_0001.jpg" "work/print-set/Water/01-ada.jpg"

Вы сохранили одинаковую существующую копию, не создавая вложенные каталоги и не заменяя другое изображение. В Photo Desk → Staging откройте все три фотографии и сравните пути с таблицей. Водопад относится к Details, мост и лодка — к Water. Подсолнухов и личных заметок нет.

Если в упражнении случайно ответили «да», исходный мост сохранился. Сверьтесь с таблицей, повторите согласованную копию Ada-в-01 из шага 1, ответьте y только для подтверждённого ошибочного назначения и снова выполните его cmp. Для восстановления не удаляйте исходное дерево и не очищайте весь рабочий каталог.

Передайте независимо открывающуюся коллекцию

На этом шаге вы включите в архив только подборку, извлечёте её в отдельный каталог получателя и откроете реальные полученные фотографии.

Начните в Workstation. tar сохраняет коллекцию в одном архиве. В -czf буква c создаёт архив, z сжимает через gzip, f задаёт следующий файл архива. -C work меняет начальный каталог tar перед выбором print-set. Поэтому архив содержит один корень print-set/, без work/, source/ и абсолютных домашних путей. Повтор команды заменяет архив из текущего рабочего дерева:

tar -czf delivery.tar.gz -C work print-set

Для списка t заменяет c. Архив читается без извлечения:

tar -tzf delivery.tar.gz

Ожидаются print-set/, каталоги Water и Details и ровно три выбранных файла. Порядок каталогов не важен. Наличие source, пробного снимка или заметок означает неверный архивируемый каталог; пересоздайте архив из подборки.

mkdir recipient создаёт новый пустой каталог получателя. Без -p он отклоняет существующий каталог, помогая не принять старые полученные файлы за новую передачу:

mkdir recipient

Для извлечения x заменяет c, а -C recipient направляет содержимое туда:

tar -xzf delivery.tar.gz -C recipient

У получателя теперь собственный recipient/print-set, не зависящий от исходных путей. Сравните каждую полученную связь:

cmp -- "source/ada/IMG_0001.jpg" "recipient/print-set/Water/01-ada.jpg"
cmp -- "source/ben/IMG_0001.jpg" "recipient/print-set/Water/02-ben.jpg"
cmp -- "source/ada/Quiet Water.jpg" "recipient/print-set/Details/03-water.jpg"

Все три сравнения должны быть без вывода. В Photo Desk → Recipient обновите страницу, откройте каждый снимок и вернитесь кнопкой «Назад». Проверьте мост, лодку и водопад под согласованными именами. Страница читает только полученные копии. Download delivery archive даёт настоящий архив, не созданную замену. Проверьте обычное открытие Sources и Sample.

Для повторного теста с чистым получателем сохраните прежний результат через mv: он перемещает или переименовывает, а не копирует. Следующее применяйте только если recipient существует, а recipient-previous нет; для дальнейших повторов выбирайте новое свободное резервное имя:

mv -- recipient recipient-previous

Затем повторите mkdir recipient и извлечение. Никогда не извлекайте в исходное дерево. При неверной рабочей связи исправьте только затронутое назначение по правилу конфликта, пересоздайте архив и используйте новый каталог получателя. Оригиналы делают восстановление возможным.

Резюме

Вы определяли снимки по исходному пути и изображению, сопоставили выбранные оригиналы выставочным именам, отклонили неверную перезапись и сравнили байты через cmp. Вы передали только отобранное дерево и открыли независимую копию получателя. Метод применим и к другим передачам, где согласованная структура отличается от исходных каталогов.