Exile on Keyboard St. - Blog sur Linux et Debian

Aller au contenu | Aller au menu | Aller à la recherche

vendredi 16 février 2018

Quelques flags utiles des commandes 'cp' et 'mv'

Que ce soit dans un terminal ou dans un script Shell, on utilise tous quotidiennement les commandes cp et mv.

Mais connaissons tous vraiment les options de ces commandes ? Pas si sûr ... Ces options sont précieuses dans un script Shell pour comprendre le flow d'exécution ou pour débugger celui-ci.

Première option intéressante, l'option -v ou --verbose:

user@machine:~ cp --verbose cleanup.log /tmp/
« cleanup.log » -> « /tmp/cleanup.log »

qui permet d'afficher ce qui est effectué. Cette option existe aussi sur la commande mv.

Deuxième option, l'option --u ou --update permet de ne copier ou déplacer le fichier que si celui-ci est plus récent que la cible:

user@machine:~$ cp --verbose --update cleanup.log /tmp/
user@machine:~$ touch cleanup.log 
user@machine:~$ cp --verbose --update cleanup.log /tmp/
« cleanup.log » -> « /tmp/cleanup.log »

La première commande cp n'a rien fait puisque les fichiers étaient identiques.

cp et mv ont aussi une option qui permet d'archiver les fichiers cibles déjà existant avant de faire la copie ou le déplacement:

user@machine:~$ cp --verbose --backup=numbered cleanup.log /tmp/
« cleanup.log » -> « /tmp/cleanup.log » (archive : « /tmp/cleanup.log.~1~ »)
user@machine:~$ cp --verbose --backup=numbered cleanup.log /tmp/
« cleanup.log » -> « /tmp/cleanup.log » (archive : « /tmp/cleanup.log.~2~ »)

Cela permet de garder les versions précédentes si l'on a besoin de revenir en arrière.

L'option --backup peut prendre les valeurs suivantes:

  • none
  • numbered
  • existing
  • simple

Autre option intéressante pour le mode interactif, l'option --interactive ou -i, qui en cas de fichier existant demande si on doit l'écraser:

user@machine:~$ cp --verbose --interactive cleanup.log /tmp/
cp : voulez-vous écraser « /tmp/cleanup.log » ? oui
« cleanup.log » -> « /tmp/cleanup.log »

Si l'on souhaite conserver les fichiers existants:

user@machine:~$ cp --verbose --no-clobber cleanup.log /tmp/

La copie n'a pas été effectuée.

Enfin pour finir citons le flag -r, -R ou --recursive qui permet de copier récursivement les répertoires.

mardi 30 janvier 2018

FOSDEM 2018: Sélection de conférences pour ce week-end

Le week-end prochain a lieu à Bruxelles l'édition 2018 du FOSDEM (Free and Open Source Software Developers' European Meeting), un grand rassemblement de développeurs Open Source dans lequel plus de 600 conférences seront données.

Pour rappel, le FOSDEM est gratuit, sans inscription, et a lieu à l'ULB (Université Libre de Bruxelles). J'y suis allé l'an dernier, c'est très intéressant, mais la plus grande difficulté est l'affluence qui rend parfois difficile l'accès aux amphis pour assister à une présentation.

Si vous ne prévoyez pas d'aller à Bruxelles ce week-end, vous pouvez quand même jeter un oeil au programme 2018 et regarder les conférences depuis votre salon en direct ou en différé.

Voilà, vous n'avez plus d'excuse pour découvrir de nouveaux projets ou outils et apprendre de nouvelles choses !

Ci-dessous la liste de conférences que j'ai sélectionné:

Samedi

Dimanche

A l'évidence, il ne sera pas possible de tout regarder en "Live", ou alors ce sera l'overdose.

Bon FOSDEM !!!

lundi 1 janvier 2018

tar: Utilisez auto-compress pour spécifier le format de compression

L'utilitaire tar, pour "Tape Archive", permet de créer un fichier compressé ou non contenant tout un répertoire ainsi que son contenu, le tout de manière récursive.

La commande tar supporte 7 programmes de compression, à savoir:

  • gzip
  • bzip2
  • lzip
  • lzma
  • lzop
  • xz
  • compress

Les deux ou trois premiers étant évidemment les plus utilisés.

Vous vous souvenez sans doute que le flag -z est à utiliser en cas de compression gzip et que -j est destiné au format bzip2.

Mais peut-être avez-vous oublié que -J active la compression XZ ou que -Z permet d'utiliser le programme compress ?

Il est en fait plus simple d'utiliser les flags "longs", à savoir:

  • --gzip
  • --bzip2
  • --lzip
  • --lzma
  • --lzop
  • --xz

Mais il y a encore mieux, et c'est de laisser le choix à la commande tar de déterminer quel programme de compression va créer l'archive au format demandé.

Cela se fait avec le flag --auto-compress ou -a.

Ce flag s'utilise comme suit:

tar caf archive.tar.bz2 .

C'est quand même plus simple, non ?

Si vous demandez un format de compression qui nécessite un programme que vous n'avez pas installé, vous aurez une erreur qui ressemble à:

tar (child): lzop : exec impossible: Aucun fichier ou dossier de ce type
tar (child): Error is not recoverable: exiting now

A la décompression, le format de compression est trouvé tout seul, sans aucune option particulière:

tar -C /tmp -xf archives/hugo.taz

- page 2 de 52 -