Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 25/10/2022, à 12:44

JLK

[RÉSOLU] Réduire récursivement les images virtuelles Virtualbox ?

Bonjour à tous.

Il y a une chose que je souhaite faire depuis longtemps sans y parvenir, c'est réduire la taille des machines virtuelles de Virtualbox (au format *.vdi) en ligne de commande (je crois qu'il n'y a pas le choix en graphique, mais j'ai peut-être mal cherché...). Les images VDI se trouvent dans plusieurs dossiers, et j'aimerais avoir la possibilité d'automatiser la procédure, pour gagner du temps.

Savez-vous comment il est possible de faire ? Je pense qu'on peut piper (|) avec des commandes de recherches, mais il semble que vbox-img compact --filename n'apprécie pas ça, y compris les wildcards (* ? [] {} etc.), sauf erreur de ma part (impression personnelle).

Merci de votre compréhension.

Dernière modification par JLK (Le 26/10/2022, à 13:20)

Hors ligne

#2 Le 25/10/2022, à 13:57

serged

Re : [RÉSOLU] Réduire récursivement les images virtuelles Virtualbox ?

find "*.vdi" -type f -exec 'vbox-img compact --filename '{}' \;

Ça devrait rouler !


LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

En ligne

#3 Le 25/10/2022, à 14:04

JLK

Re : [RÉSOLU] Réduire récursivement les images virtuelles Virtualbox ?

serged a écrit :
find "*.vdi" -type f -exec 'vbox-img compact --filename '{}' \;

Ça devrait rouler !

Merci de ton post.
Pourrais-tu m'expliquer un peu plus en détail la commande, histoire que je me forme davantage sur ces histoires de tâches récursives, stp ?

Hors ligne

#4 Le 25/10/2022, à 15:04

Hizoka

Re : [RÉSOLU] Réduire récursivement les images virtuelles Virtualbox ?

Salut,

find "*.vdi" : Recherche tous les éléments se terminant par .vdi
-type f : uniquement les éléments de type fichier
-exec 'vbox-img compact --filename '{}' \; : exécute la commande vbox-img compact --filename FICHIER_TROUVÉ


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#5 Le 25/10/2022, à 15:53

JLK

Re : [RÉSOLU] Réduire récursivement les images virtuelles Virtualbox ?

Hizoka a écrit :

Salut,

find "*.vdi" : Recherche tous les éléments se terminant par .vdi
-type f : uniquement les éléments de type fichier
-exec 'vbox-img compact --filename '{}' \; : exécute la commande vbox-img compact --filename FICHIER_TROUVÉ

Merci Hizoka.

J'ai oublié de préciser que les fichiers en question ont des noms avec des espaces. Ça ne posera pas de problème ?
Et que signifie le '{}' \; ?

Dernière modification par JLK (Le 25/10/2022, à 16:10)

Hors ligne

#6 Le 25/10/2022, à 16:51

JLK

Re : [RÉSOLU] Réduire récursivement les images virtuelles Virtualbox ?

La commande ne fonctionne pas. Un ">" est affiché en retour à la ligne et semble vouloir une série d'instructions.

Hors ligne

#7 Le 25/10/2022, à 17:25

bruno

Re : [RÉSOLU] Réduire récursivement les images virtuelles Virtualbox ?

man find a écrit :

       -exec commande ;
              Exécuter  la commande ; vrai si le code de retour 0 est renvoyé. Tous les paramètres qui suivent find sont considérés comme des
              paramètres pour la ligne de commande, jusqu'à la rencontre d'un caractère « ; ». La chaîne « {} » est remplacée par le  nom  du
              fichier en cours de traitement, cela dans toutes ses occurrences sur la ligne de commande et pas seulement aux endroits où elle
              est isolée, comme c'est le cas avec d'autres versions de find. Ces deux chaînes peuvent avoir besoin d'être protégées du  déve‐
              loppement de la ligne de commande par l'interpréteur, en utilisant le caractère d'échappement (« \ ») ou une protection par des
              guillemets. Consultez la section EXEMPLES pour des exemples d'utilisation de l'option -exec. La commande indiquée est  exécutée
              à  chaque  fois qu'un fichier correspond. La commande est exécutée depuis le répertoire de départ. Il existe d'inévitables pro‐
              blèmes de sécurité associés à l'usage de l'option -exec, c'est pourquoi vous devriez utiliser l'option -execdir à la place.

#8 Le 25/10/2022, à 17:39

lynn

Re : [RÉSOLU] Réduire récursivement les images virtuelles Virtualbox ?

Il manque un " ' " dans la commande

find "*.vdi" -type f -exec 'vbox-img' compact --filename '{}' \;
                                            ~~~~^


«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»

Coluche

Hors ligne

#9 Le 25/10/2022, à 17:40

JLK

Re : [RÉSOLU] Réduire récursivement les images virtuelles Virtualbox ?

Est-ce que la syntaxe de la commande donnée ci-dessus est bien correcte ?

EDIT :

lynn a écrit :

Il manque un " ' " dans la commande

find "*.vdi" -type f -exec 'vbox-img' compact --filename '{}' \;
                                            ~~~~^

Je viens de m'en rendre compte... Règle n°1 personnelle : ne jamais copier bêtement une commande avant de l'avoir inspectée complètement. tongue

Dernière modification par JLK (Le 25/10/2022, à 17:43)

Hors ligne

#10 Le 25/10/2022, à 17:45

JLK

Re : [RÉSOLU] Réduire récursivement les images virtuelles Virtualbox ?

Ça ne fonctionne pas. sad

Hors ligne

#11 Le 25/10/2022, à 17:46

Hizoka

Re : [RÉSOLU] Réduire récursivement les images virtuelles Virtualbox ?

Z'êtes sûr du ' ?

la commande c'est bien vbox-img compact --filename "FICHIER" ?
Si oui, alors le ' ne va pas là mais : find "*.vdi" -type f -exec 'vbox-img compact --filename '{}' ' \;
non ?
{} = Fichier trouvé
\; met fin à --exec


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#12 Le 25/10/2022, à 17:54

JLK

Re : [RÉSOLU] Réduire récursivement les images virtuelles Virtualbox ?

Hizoka a écrit :

Z'êtes sûr du ' ?

la commande c'est bien vbox-img compact --filename "FICHIER" ?
Si oui, alors le ' ne va pas là mais : find "*.vdi" -type f -exec 'vbox-img compact --filename '{}' ' \;
non ?
{} = Fichier trouvé
\; met fin à --exec

Moi, je ne suis sûr de rien, vu la complexité du truc... hmm lol

Hors ligne

#13 Le 25/10/2022, à 17:59

Hizoka

Re : [RÉSOLU] Réduire récursivement les images virtuelles Virtualbox ?

La commande est très simple pour le coup,
le find recherche les fichiers et exécute la commande vbox-img compact --filename '{}' pour chacun.

La seule question est quelle est la commande que tu veux exécuter... si cv'est bien celle ci-dessus, alors elle doit être encadrée par des ' ' (ou pas en fait).

find "*.vdi" -type f -exec vbox-img compact --filename "{}"' \;

devrait marcher aussi.


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#14 Le 25/10/2022, à 18:02

lynn

Re : [RÉSOLU] Réduire récursivement les images virtuelles Virtualbox ?

Du coup, pas besoin du dernier ' tongue


«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»

Coluche

Hors ligne

#15 Le 25/10/2022, à 18:25

JLK

Re : [RÉSOLU] Réduire récursivement les images virtuelles Virtualbox ?

Je crois que ce qui ne marche pas, c'est qu'il ne cherche pas récursivement dans les sous-dossiers...

Dernière modification par JLK (Le 25/10/2022, à 18:28)

Hors ligne

#16 Le 25/10/2022, à 18:29

Hizoka

Re : [RÉSOLU] Réduire récursivement les images virtuelles Virtualbox ?

on va y arriver tongue

find "$PWD" -iname "*.vdi" -type f -exec vbox-img compact --filename "{}" \;

KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#17 Le 25/10/2022, à 18:36

JLK

Re : [RÉSOLU] Réduire récursivement les images virtuelles Virtualbox ?

Hizoka a écrit :

on va y arriver tongue

find "$PWD" -iname "*.vdi" -type f -exec vbox-img compact --filename "{}" \;

Qu'est-ce que ça change dans l'approche ?

Hors ligne

#18 Le 25/10/2022, à 19:41

JLK

Re : [RÉSOLU] Réduire récursivement les images virtuelles Virtualbox ?

JLK a écrit :
Hizoka a écrit :

on va y arriver tongue

find "$PWD" -iname "*.vdi" -type f -exec vbox-img compact --filename "{}" \;

Qu'est-ce que ça change dans l'approche ?

Ça ne fonctionne toujours pas.

Si je tape $PWD dans le terminal, j'obtiens :

bash: /media/Données/[MACHINES: Aucun fichier ou dossier de ce type

Je précise que mon répertoire de travail est dans /media/Données/[MACHINES VIRTUELLES]. Remarquez que le dossier (et également les sous-dossiers) comporte des espaces dans le nom.

Hors ligne

#19 Le 26/10/2022, à 08:01

Hizoka

Re : [RÉSOLU] Réduire récursivement les images virtuelles Virtualbox ?

bah justement, il faut que tu protèges ta variable avec des ".

echo "$PWD"

que se passe-t-il quand tu dis que ça ne marche pas ?
que te renvoie la simple commande :

find "$PWD" -iname "*.vdi" -type f 

Normalement, ça te renvoie les adresses complètes des fichiers


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#20 Le 26/10/2022, à 10:06

JLK

Re : [RÉSOLU] Réduire récursivement les images virtuelles Virtualbox ?

Ah oui, en effet, on dirait que ça peut marcher avec les guillemets. smile

find "$PWD" -iname "*.vdi" -type f 
/media/Données/[MACHINES VIRTUELLES]/Famille Windows/Windows 10 Familiale/Windows 10 familiale Premium.vdi
/media/Données/[MACHINES VIRTUELLES]/Famille Windows/Windows 7 SP1 Édition familiale Premium/Windows 7 SP1 Édition familiale Premium.vdi
/media/Données/[MACHINES VIRTUELLES]/Famille Linux/Famille Ubuntu/Ubuntu Bugdie 22.04/Ubuntu Bugdie 22.04.vdi
/media/Données/[MACHINES VIRTUELLES]/Famille Linux/Famille Ubuntu/Ubuntu 22.04/Ubuntu 22.04.vdi
/media/Données/[MACHINES VIRTUELLES]/Famille Linux/Famille Ubuntu/Lubuntu 22.04/Lubuntu 22.04.vdi
/media/Données/[MACHINES VIRTUELLES]/Famille Linux/Famille Ubuntu/Ubuntu MATE 22.04/Ubuntu MATE 22.04.vdi
/media/Données/[MACHINES VIRTUELLES]/Famille Linux/Famille Ubuntu/Xubuntu 22.04/Xubuntu 22.04.vdi
/media/Données/[MACHINES VIRTUELLES]/Famille Linux/Famille Ubuntu/Kubuntu 22.04/Kubuntu 22.04.vdi
/media/Données/[MACHINES VIRTUELLES]/Autres/Haiku OS R1 beta 3 (64 bits)/Haiku OS R1 beta 3 (64 bits).vdi

EDIT : j'ai lancé la ligne de commandes. Je m'étonne de son manque de verbosité (qui donne par défaut, me semble-t-il, les sorties, mais c'est peut-être dû à la barre de progression textuelle qui fait coincé l'affichage de la sortie). Fallait-il combiner la commande tee ?

Dernière modification par JLK (Le 26/10/2022, à 10:22)

Hors ligne

#21 Le 26/10/2022, à 11:37

Hizoka

Re : [RÉSOLU] Réduire récursivement les images virtuelles Virtualbox ?

Ah oui, en effet, on dirait que ça peut marcher avec les guillemets.

Toujours protéger les variables sauf certains cas spécifiques.

Donc la commande find est OK, elle renvoie bien les fichiers.

Ton Edit indique que c'est tout bon ?
La commande tee ne sert à rien là.
Elle permet d'afficher sur ton écran les sortie en plus de les envoyer dans un fichier.


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#22 Le 26/10/2022, à 13:10

JLK

Re : [RÉSOLU] Réduire récursivement les images virtuelles Virtualbox ?

Hizoka a écrit :

Ah oui, en effet, on dirait que ça peut marcher avec les guillemets.

Toujours protéger les variables sauf certains cas spécifiques.

Donc la commande find est OK, elle renvoie bien les fichiers.

Ton Edit indique que c'est tout bon ?
La commande tee ne sert à rien là.
Elle permet d'afficher sur ton écran les sortie en plus de les envoyer dans un fichier.

Ça a marché, merci. C'est juste que ça a pris beaucoup de temps pour réduire la taille des fichiers d'images virtuelles au format VDI, sachant qu'elles se trouvent toutes sur un même disque dur. wink
Sinon, pour afficher le travail en cours, comment aurait-il fallu taper en ligne de commande ?

Hors ligne

#23 Le 26/10/2022, à 14:20

Hizoka

Re : [RÉSOLU] Réduire récursivement les images virtuelles Virtualbox ?

Normalement, tu n'as rien à faire, il l'affiche par défaut...

find "$PWD" -type f -exec ls -l "{}" \;

Affiche bien tous les retours de ls.


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#24 Le 26/10/2022, à 19:22

JLK

Re : [RÉSOLU] Réduire récursivement les images virtuelles Virtualbox ?

Hizoka a écrit :

Normalement, tu n'as rien à faire, il l'affiche par défaut...

find "$PWD" -type f -exec ls -l "{}" \;

Affiche bien tous les retours de ls.

Je confirme.
Je pense que c'est l'outil en ligne de commande qui est un peu limité de ce côté-là.

Dernière modification par JLK (Le 26/10/2022, à 19:22)

Hors ligne

#25 Le 26/10/2022, à 20:21

Watael

Re : [RÉSOLU] Réduire récursivement les images virtuelles Virtualbox ?

c'est juste un echo à "ajouter" :

find -type f -name '*.vdi' -execdir sh -c 'echo "$1"; vbox-img compact --filename "$1"' sh '{}' \;

NB : je n'indique pas le répertoire de départ, ni $PWD (le répertoire courant), parce que par défaut find utilise le répertoire courant comme répertoire de départ ! wink
NB2 : le sh entre les commandes et "{}", c'est parce que sh -c numérote les paramètres positionnels à partir de zéro, et donc pour conserver sa signification à $0 (soit le nom du shell utilisé).


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne