2 votes

Copier sur écriture, moins de données redondantes

J'ai un dossier contenant beaucoup de photos et un programme pour mettre à jour certaines des photos.

Je veux créer un nouveau dossier avec une copie des anciennes photos et exécuter le programme dessus, mais je veux économiser de l'espace sur mon disque dur donc je ne veux pas avoir une copie de toutes les photos inchangées.

2voto

geekosaur Points 11085

Est-ce que le programme écrit simplement par-dessus l'image modifiée, ou crée-t-il un nouveau fichier et supprime l'ancien ? Si c'est le dernier cas, vous pouvez créer votre répertoire de travail avec cp -dRl origdir workdir, ce qui créera des liens physiques au lieu de nouvelles copies. (Ou cp -dRs si vous préférez utiliser des liens symboliques au lieu de liens physiques.)

0voto

Dalroth Points 2468

Je ferais usage de /tmp et créerais un script shell pour copier chaque image là-bas puis la traiter. Si l'image est traitée avec succès, la déplacer ailleurs, sinon la supprimer. Faites ceci une image à la fois.

par exemple.

#!/bin/bash

for f in *
do
     cp "$f" /tmp
     /chemin/vers/votreprogramme "/tmp/$f"
     # vérifier si l'image a été traitée correctement, peut-être via le code de sortie ($?)
     if [ $? -eq 0 ]
     then
           mv "/tmp/$f" /quelque/autre/emplacement
     else
           rm "/tmp/$f"
     fi
done

De nombreuses façons de tuer un chat, modifier selon vos besoins.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X