Articles portant le tag ‘ligne de commande’

Recherche de fichiers sous linux

Testé sur Ubuntu 10.04

Un petit mémo sur les recherches de fichiers en ligne de commande sous Linux avec find et grep.

Pour tous les exemples de find j’utilise l’option -exec qui permet d’appliquer une autre commande (ls, rm, etc…) aux résultats de la recherche. La chaîne "{}" sera remplacée par le nom du fichier, \; termine la commande.

Recherche de fichiers et répertoires sur le nom

Lister les fichiers dont le nom est « toto » à partir du répertoire courant :

find . -name "toto" -exec ls -lh "{}" \;

Pour ce type de recherche simple il ne faut pas oublier la commande locate, très rapide car elle va lire une base d’indexation au lieu de parcourir l’arborescence des répertoires. Par contre les fichiers trop récents ne seront pas forcément indexés. La commande suivante recherche tous les fichiers dont le chemin contient « toto » :

locate toto

Pour faire une recherche insensible à la casse on utilise -iname à la place de -name :

find . -iname "toto" -exec ls -lh "{}" \;

Lister les fichiers dont l’extension est « .log » à partir du répertoire courant :

find . -name "*.log" -exec ls -lh "{}" \;

Lister les répertoires dont le nom est « toto » à partir du répertoire courant :

find . -name "toto" -type d -exec ls -d "{}" \;

Lister les répertoires dont le chemin contient « /local/bin » à partir du répertoire courant :

find . -wholename "*/local/bin*" -type d -exec ls -d "{}" \;

On peut combiner les critères avec les opérateurs -a pour et, -o pour ou et ! pour la négation.

Lister les répertoires dont le nom est « toto » qui ne sont pas un sous-répertoire de « /scripts/bash »

find . \( -name "toto" -a ! -wholename "*/scripts/bash/*" \) -exec ls -d "{}" \;

Lire la suite »

Graver une image ISO sur un DVD en ligne de commande

Testé sur Mint LMDE

Ces derniers temps Brasero a mauvais caractère et refuse de graver les images ISO sur DVD. Comme je n’ai pas le temps d’investiguer la chose, retour à la bonne vieille ligne de commande :

growisofs -dvd-compat -Z /dev/dvd=image.iso

/dev/dvd est à adapter en fonction de la config

Lien :

DivByZero.com: HOWTO: Burn ISO image to DVD w/ linux commandline

Obtenir l’adresse IP publique en ligne de commande

On peut utiliser un service web existant :

wget -q -O - myip.dnsdynamic.com

Si on a un serveur web ce service est très facile à implémenter avec une page php d’une seule ligne :

<?php print $_SERVER['REMOTE_ADDR'] ?>

Et hop, c’est fait! monip.onsenfout.com

Synchronisation Linux – Windows avec Unison 2.40

Debian 5.07 Lenny – Windows Server 2008

Unison est un outil de synchronisation multi-plateforme très puissant, que j’utilise avec bonheur depuis plusieurs années. Il permet des synchronisations bi-directionnelles entre 2 jeux de données qui peuvent être locaux ou distants (support de SSH), et il fonctionne sur différents UNIX (Linux, Solaris, Mac OS X,..) et Windows. Il n’avait jusqu’ici qu’un seul gros défaut, l’absence de support de l’encodage UTF-8, ce qui posait problème avec nos chers caractères accentués dans les noms de fichiers et de répertoires. C’est maintenant résolu avec la dernière version 2.40.61, encore en beta mais raisonnablement stable (quelques plantages constatés avec un binaire 32 bits sous Windows Server 2008 64 bits).

Mise en oeuvre d’une synchronisation basique Windows – Linux via SSH

Lire la suite »

ncftpget : copie récursive de fichiers depuis un serveur FTP

ncftpget est un utilitaire en ligne de commande qui permet de copier récursivement une arborescence de fichiers d’un serveur FTP distant. Quand on n’a pas d’autres moyens d’accès que le FTP c’est un petit programme bien pratique.

On peut le télécharger ici http://www.ncftp.com/ncftp/, pour Debian et Ubuntu on fera :

sudo aptitude install ncftp

Exemple d’utilisation :

Pour copier tous les fichiers du répertoire /var/www du serveur www.exemple.com avec le user FTP « machin » vers le répertoire /var/www/sitemachin de la machine locale :

ncftpget –R –v –u "machin" www.exemple.com /var/www/sitemachin /var/www

avec :

-R : copie récursive
-v : mode verbeux
-u "machin" : nom de l'utilisateur FTP

Lien : Linux: Download all file from ftp server recursively