Exile on Keyboard St. - Blog sur Linux et Debian

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

Tag - ligne de commande

Fil des billets - Fil des commentaires

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

vendredi 29 décembre 2017

Choisir l'editeur pour éditer le crontab utilisateur

Sous Linux, le crontab utilisateur se modifie par la commande:

crontab -e

S'ouvre alors l'éditeur du système avec les définitions actuelles du crontab. Par défaut, cet éditeur est vi ou nano mais on peut modifier ce comportement en positionnant la variable EDITOR ou VISUAL.

Si la variable VISUALest positionnée, sa valeur est prise en compte, sinon la commande crontab utilise la valeur de la variable EDITOR.

Pour ce convaincre de ce fonctionnement sans altérer son système, on pourra tester la commande suivante:

EDITOR=vi crontab -e

qui lancera alors vi pour modifier le crontab sans pour autant modifier la variable d'environnement EDITOR du système.

La commande:

VISUAL=vi crontab -e

produirait elle aussi le même résultat.

En revanche:

EDITOR=vi VISUAL=nano crontab -e

lancera alors nano puisque la variable VISUAL est prioritaire sur EDITOR.

Enfin, n'essayez pas de positionner l'une des variables précédentes vers l'éditeur Sublime Text, car curieusement cela ne fonctionne pas !

dimanche 5 novembre 2017

Le paquet trash-cli ou comment utiliser la corbeille en ligne de commande

On a tous à un moment ou à un autre supprimé un fichier par erreur sous Linux.

On remédie souvent à cette situation malheureuse par un:

alias rm='rm -i'

Cependant, il existe un moyen de se passer de la confirmation de suppression de la commande rm et cela consiste à utiliser la corbeille en ligne de commande.

Linux propose en effet le paquet trash-cli que l'on installe comme suit:

sudo apt-get install trash-cli

Et pour supprimer un fichier, plutôt que d'utiliser la commande rm:

trash-put Readme.md 

Puis:

trash-put Profiles.zip 

Pour afficher la liste des fichiers présents dans la corbeille:

trash-list 
2017-11-05 16:34:05 /home/user/Profiles.zip
2017-11-05 16:33:51 /home/user/Readme.md

La timestamp affiché étant la date de suppression du fichier.

Supposons maintenant que j'ai supprimé Readme.md par erreur:

user@machine:~$ restore-trash 
   0 2017-11-05 16:34:05 /home/user/Profiles.zip
   1 2017-11-05 16:33:51 /home/user/Readme.md
What file to restore [0..1]: 

Il me suffit alors de sélectionner le numéro du fichier pour que celui-ci soit restauré.

Le paquet trash-cli fournit aussi la commande restore-trash qui permet de rétablir l'intégralité des fichiers placés à la corbeille.

Et on peut maintenant définir:

alias rm='trash-put'

- page 2 de 16 -