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.

lundi 16 octobre 2017

Mate: Raccourcis clavier prédéfinis et personnalisés - Gestion des fenêtres et autres

Dans un billet précédent, on a défini des raccourcis clavier un peu plus commodes que ceux définis par défaut pour le Bureau.

Les raccourcis pour la catégorie "Gestion des fenêtres" sont très nombreux et la plupart sont désactivés par défaut.

On en redéfinira qu'un de plus ici:

  • Alt+F11: Basculer en mode plein écran

afin d'être complet avec ceux déjà définis:

  • Alt+F5: Restaurer la fenêtre
  • Alt+F10: Basculer l'état d'agrandissement

Les autres raccourcis très utiles de la catégorie étant:

  • Ctrl+Tab: Se déplacer entre les fenêtres via une fenêtre de premier plan
  • Ctrl+Alt+Tab: Se déplacer entre les tableaux de bord et le bureau via une fenêtre de premier plan

Et:

  • Ctrl+Alt+Gauche: Passer à l'espace de travail à gauche de l'espace actuel
  • Ctrl+Alt+Droite: Passer à l'espace de travail à droite de l'espace actuel

Passons maintenant aux raccourcis personnalisés. On a déjà défini un raccourci pour le terminal, il serait assez pratique d'en avoir un pour le terminal administrateur.

Donc, dans les raccourcis personnalisés, on ajoutera:

  • Ctrl+Alt+X: Terminal Administrateur

dont la commande est:

gksu mate-terminal

Enfin j'ajoute également le raccourci suivant:

  • Ctrl+Impr: Prendre une capture d'écran de manière interactive

dont la commande est:

mate-screenshot -i

lundi 9 octobre 2017

Disposer de la complétion Bash avec Maven

L'outil de build Maven utilisé pour les projets Java a au moins un inconvénient, à savoir que par défaut aucune complétion n'est proposée dans le Terminal.

Que ce soit pour la liste des cibles ou phases ou des options comme skipTests ou maven.test.skip, dont personne ne se souvient et que tout le monde utilise ... (mai cela est une autre affaire), rien n'est proposé pour aider le développeur que vous êtes.

Heureusement, quelqu'un s'est chargé d'écrire un fichier de complétion Bash pour Maven.

Il suffit d'aller voir le dépôt maven-bash-completion et de copier le fichier de complétion dans /etc/bash.completion.d:

sudo \
    wget https://raw.github.com/dimaj/maven-bash-completion/master/bash_completion.bash \
    --output-document /etc/bash_completion.d/mvn

Vous verrez qu'ensuite, tout est plus agréable. Par exemple les cibles sont proposées quand on appuie sur TAB, exactement comme c'est le cas avec .... un Makefile !!!

- page 1 de 3