2

У меня есть папка с множеством картинок и программа для обновления некоторых картинок.

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

2 ответа2

2

Программа просто записывает поверх измененного изображения или создает новый файл и удаляет старый? Если последнее, вы можете создать свой рабочий каталог с помощью cp -dRl origdir workdir , который будет создавать жесткие ссылки вместо новых копий. (Или cp -dRs если вы предпочитаете использовать символические ссылки вместо жестких).

0

Я бы использовал /tmp и сделал бы скрипт оболочки, чтобы скопировать туда каждое изображение и затем обработать его. Если изображение успешно обработано, переместите его в другое место, если нет, удалите его. Делайте это по одной картинке за раз.

например

#!/bin/bash

for f in *
do
     cp "$f" /tmp
     /path/to/yourprogram "/tmp/$f"
     # check if picture was processed correctly, possibly via exit code ($?)
     if [ $? -eq 0 ]
     then
           mv "/tmp/$f" /some/other/location
     else
           rm "/tmp/$f"
     fi
done

Множество способов покрасить кошку, изменить в соответствии с вашими потребностями.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .