Table des matières (masquer)
- 1. Les commandes indispensables
- 2. Raccourcis clavier
- 3. Le système de fichiers
- 4. Informations sur le système
- 5. Quelques exemples de commandes en ligne
- 5.1 Transformer tous les ogg en wav dans le répertoire courant
- 5.2 Transformer tous les wav en mp3 dans le répertoire courant
- 5.3 Remplacer tous les espaces dans tous les fichiers du répertoire courant par des _ :
- 5.4 Renommer tous les fichiers mp3 en 001.mp3, 002.mp3 etc… :
- 5.5 Mettre les noms de fichiers en minuscules :
- 5.6 Changer les extensions jpeg de tous les fichiers d’un réperoire en jpg
- 5.7 Remplacer une expression par une autre dans tous les fichiers .mp3 du répertoire courant
- 5.8 Renommer tous les fichiers de la forme *titi* par *toto*
- 5.9 Imprimer 4 pages de input.pdf sur chaque feuille ici : la 12, la 10 et de 20 à 30 dans out.pdf
- 5.10 Concaténer tous les pdf du dossier en un seul nommé out.pdf
- 5.11 Remplacer les esapces par des _ dans tous les noms des fichiers du répertoire courant
- 5.12 Couper film.avi en film1.avi(la première heure) + film2.avi(le reste)
- 5.13 Encoder une vidéo pour un palm
- 5.14 Encoder une vidéo pour un téléphone portable
- 5.15 Encoder une vidéo pour le web (format flv)
- 5.16 Convertir les ogg en mp3 avec un petit exécutable bash
- 5.17 Trouver un fichier avec locate
- 5.18 Trouver un fichier avcec find
1. Les commandes indispensables
| Commandes linux | équivalent MsDos | à quoi ça sert | Exemples : |
| cd | cd | change le répertoire courant. | cd .. → va dans le répertoire parent du répertoire courant cd /home/gaston/.firefox → va dans le répertoire désigné |
| ls | dir | affiche le contenu d’un répertoire | ls → affiche le contenu du répertoire courant ls -l → affiche le contenu du répertoire courant de manière détaillée ls -alh /home/user → affiche le contenu du répertoire, ainsi que les fichiers cachés avec la taille en Ko ou Mo |
| touch | pas d’équivalent | Crée un fichier vide | touch monFichier → Crée le fichier monFichier |
| cp | copy xcopy | copie un ou plusieurs fichiers | cp toto /tmp → copie le fichier toto dans le répertoire /tmp cp toto titi → copie le fichier toto sur le fichier titi cp -R /home/user /tmp/bak → copie le répertoire /home/user ainsi que tout ce qu’il contient dans /tmp/bak |
| rm | del | efface un ou plusieurs fichiers | rm toto titi → efface les fichiers toto et titi sans demander confirmation |
| rm -rf | deltree | efface un répertoire et son contenu | rm -rf /tmp/* → efface (sans demander de confirmation) tous les fichiers et répertoire de /tmp |
| mkdir | md | crée un répertoire | mkdir /home/user/mesDocuments → crée le répertoire “mesDocuments” dans le sous répertoire /home/user Attention! la commande mkdir /home/user/mes documents pourrait vous surprendre ! |
| rmdir | rm | efface un répertoire s’il est vide | rmdir /home/user/rep → efface le répertoire rep de /home/user/ si celui-ci est vide |
| mv | ren move | déplace ou renomme un ou des fichiers | mv tata titi → renomme tata en titi mv * *.bak → ne fonctionne pas !!!! mv * /tmp/bak - déplace tous les fichiers du répertoire courant vers le répertoire /tmp/bak |
| find | dir -s | trouve un fichier répondant à certains critères | find /home -name “*bash*” → trouve tous les fichiers contenant le mot bash dans leur nom se trouvant dans le répertoire /home |
| locate | dir -s | trouve un fichier d’après son nom | locate bash → trouve tous les fichiers contenant le mot bash dans leur nom complet (avec le répertoire) : à la différence de find, locate trouve ses informations dans une base de donnée créée par updatedb ce qui est plus rapide |
| man | help | affiche l’aide concernant une commande particulière | man ls → affiche l’aide (page de manuel) de la commnade ls. On quitte man en appuyant sur la touche ‘q’ |
| chmod | pas d’équivalent | modifie les permissions d’un fichier | chmod o+r /home/user → autorise les autres (o=other) (ie: ceux qui ne sont ni le propriétaire, ni membre du groupe propriétaire) à lire (r=read) le répertoire /home/user chmod a+rw /home/user/unfichier → autorise tout le monde (a=all) à lire et écrire (w=write) dans le fichier /home/user/unfichier |
| chown | pas d’équivalent | modifie le propriétaire d’un fichier | chown user unfichier → rend user propriétaire de unfichier. |
| chgrp | pas d’équivalent | modifie le groupe proprétaire d’un fichier | chgrp -R nobody /home/httpd → rend le groupe : nobody (un groupe ayant très peu de droit sur un système linux) propriétaire de /home/httpd ainsi que tout les fichiers qu’il contient (-R) |
| ln -s | pas d’équivalent | crée un lien vers un fichier | ln -s .Trash Corbeille → crée un lien de Corbeille vers .Trash |
| grep | pas d’équivalent | recherche une chaine dans un fichier (en fait recherche une expression régulière dans plusieurs fichiers) | grep chaine *.txt → recherche la chaine ‘chaine’ dans tous les fichier se terminant par .txt. |
| which | pas d’équivalent | trouve le répertoire dans lequel se trouve une commande | which firefox → retourne le nom du répertoire dans lequel se trouve le lanceur du programme Firefox. |
| cat | type | affiche un fichier à l’écran | cat .mozilla/firefox/profiles.ini → affiche le contenu du fichier profiles.ini du répertoire caché .mozilla/firefox/ |
| less | ? | lire un fichier à l’écran | less /etc/apt/sources.list → permet de lire le contenu du fichier sources.list On quitte less en appuyant sur la touche ‘q’ En tapant /monMot puis [Entrée] on recherche la chaîne “monMot” et on passe en revue les résultats en tapant n |
2. Raccourcis clavier
- Tab
Taper une fois la touche [Tab] permet de compléter automatiquement un nom de fichier/répertoire s’il est unique :$ cd /et [Tab] $ cd /etc
- Tab Tab
Si lors du premier appui sur [Tab], le nom n’a pas été complété, un deuxième appui vous donne la liste de toues les possibilités :$ cd /usr/fi [Tab][Tab] file file-roller find finger firefox
- Flèche vers le haut (ou Ctrl-P) / bas (ou Ctrl-N)
La flèche vers le haut permet de remonter dans l’historique des commandes, la flèche vers le bas permet de revenir. - Shift - flèche vers le haut/bas
Permet de scroller le contenu du terminal texte vers le haut ou le bas, d’une ligne. En effet, les lignes qui ont défilé vers le haut restent en mémoire et restent accessibles. - Shift - Page up/down
La même chose, mais page par page. - Ctrl-C
Arrête le processus en cours, celui qui a été lancé par la dernière commande. - Ctrl-Z
Stoppe le processus en cours, celui qui a été lancé par la dernière commande, mais ne le détruit pas : il reste en attente. Pour le mettre en tâche de fond (il continue à s’exécuter, mais vous pouvez continuer à taper des commandes), tapez bg. Pour le faire revenir en avant, taper fg. - Ctrl-D
Ferme le terminal en cours (similaire aux commandes exit ou logout). - Ctrl-Alt-Fn
Se place sur la console virtuelle numéro n. Par défaut, il y a en général 6 consoles texte virtuelles, de F1 à F6, pour revenir à l’interface graphique : Alt-F7 - Ctrl-Alt-Backspace
Cela permet de tuer l’interface graphique et de revenir à l’interface de login. A n’utiliser qu’en cas d’urgence quand plus rien ne fonctionne. - Ctrl-Alt - Flèche droite/Flèche gauche
Permet de passer d’un bureau à l’autre
3. Le système de fichiers
Si vous lancez le navigateur et que vous cliquez sur système de fichiers, l’ensemble des répertoires situés à la racine du système Linux apparaissent. EN ligne de commande, on peut lister l’ensemble de ces répertoires en tapant :
$ ls -l
Nous allons voir comment est organisée l’arborescence de ce système Linux, répertoire par répertoire.
3.1 /bin
Il contient de nombreuses commandes de base (en binaire) accessibles à tout utilisateur :
$ ls /bin bash echo mkdir sleep bunzip2 ed mknod stty ................ bzip2recover gzexe ntfs-3g umount bzless gzip pidof uname bzmore hostname ping uncompress cat ip ping6 vdir check-foreground-console kbd_mode ps which chgrp kill pwd zcat
On retrouve kill qu’on utilise pour tuer un programme, ping qui permet de tester les connexions réseau, ou encore mkdir avec lequel on peut créer un répertoire, etc…
D’autres programmes se trouvent dans /sbin ou /usr/bin
3.2 /boot
Il contient ce qui concerne le démarrage de Linux:
- le nécessaire pour le gestionnaire de démarrage GRUB; notamment les infos affichées au démarrage de l’ordinateur dans /boot/grub/menu.lst voir Modifier le gestionnaire de démarrage?.
- le noyau Linux
3.3 /dev
Il contient les fichiers premettant de communiquer avec les périphériques (devices en anglais). On y trouve /dev/sda1, /dev/sda2,… qui sont les points d’accès aux partitions du disque dur (SCSI, S-ATA ou USB pour les disques dur IDE ce sera /dev/hda1,…) pour les parcourir, s’ils ne sont pas déjà montés (ce qu’on vérifie par la commande mount), on fait appel à la commande :
$ sudo mkdir /media/mondisque $ sudo mount /dev/sda2 /media/mondisque
On y trouve aussi /dev/fd qui est le lien vers le lecteur de disquette, /dev/tty* qui correspondent aux terminaux, /dev/input/mice et /dev/psaux correspondant généralement à la souris et au touchpad des ordinateurs portables…
La liste est encore longue, comme vous le voyez vous même :
$ ls /dev 2-2 ptyd4 ptysc ptyy4 tty24 ttyc9 ttyS0 ttyx5 agpgart ptyd5 ptysd ptyy5 tty25 ttyca ttys1 ttyx6 audio ptyd6 ptyse ptyy6 tty26 ttycb ttyS1 ttyx7 bus ptyd7 ptysf ptyy7 tty27 ttycc ttys2 ttyx8 cdrom ptyd8 ptyt0 ptyy8 tty28 ttycd ttyS2 ttyx9 cdrw ptyd9 ptyt1 ptyy9 tty29 ttyce ttys3 ttyxa console ptyda ptyt2 ptyya tty3 ttycf ttyS3 ttyxb core ptydb ptyt3 ptyyb tty30 ttyd0 ttys4 ttyxc disk ptydc ptyt4 ptyyc tty31 ttyd1 ttys5 ttyxd dri ptydd ptyt5 ptyyd tty32 ttyd2 ttys6 ttyxe dsp ptyde ptyt6 ptyye tty33 ttyd3 ttys7 ttyxf dvd ptydf ptyt7 ptyyf tty34 ttyd4 ttys8 ttyy0 .............
3.4 /etc
C’est un répertoire très important puisqu’il contient (presque) tous les fichiers de configuration éditables par l’utilisateur ( editing text config en anglais ). Par exemple :
/etc/apt/contient les informations relatives aux paquets installés sur votre Linux Ubuntu (ou Debian) notamment le fichiersources.listdont nous avons parlé dans configuration du sources.list?/etc/X11contient les informations relatives au gestionnaire graphique. Notamment le fichierxorg.conf/etc/cupscontient les informations relatives au gestionnaire d’impression cups (common unix printing system)/etc/rc*.det/etc/init.d/contiennent les scripts de démarrage du système Linux ainsi que des services essentiels.- …
3.5 /home
C’est le répertoire qui contient les répertoires des utilisateurs possédant un compte sur la machine. L’administrateur root possède aussi un répertoire personnel mais il se situe ailleurs : /root.
3.6 /lib
C’est le répertoire où se trouvent les bibliothèques logicielles (librairies en anglais) nécessaires pour les exécutables de /bin et /sbin. On y trouve aussi les modules utiles pour le noyau (dans /lib/modules/2.6.*)
3.7 /lost+found
C’est un répertoire qui, comme son nom l’indique permet de retrouver des fichiers récupérés après un incident ou un arrêt brutal ayant entraîné des dégâts. Ce répertoire est nomalement vide.
3.8 /media et /mnt
Ces répertoires contiennent les points de montage des différents périphériques de stockage. Dans les fait, sous Ubuntu, /mnt est vide et c’est /media qui est utilisé. On y retrouve les disques durs, lecteurs de cd, de dvd, le lecteur de disquette et les périphériques USB qui s’y montent automatiquement.
3.9 /opt
On y trouve les logiciels optionnels : ceux qui sont installés mais ne font pas normalement partie de la distribution; autrement dit, sous Ubuntu, ceux qui ont été installés sans faire appel au gestionnaire apt ou synaptic.
3.10 /proc
Système de fichiers virtuel renseigant le noyau sur les différents processus en cours d’exécution et la machine. Par exemple la commande suivante vous renseignera sur vos disques durs et lecteurs cdrom :
$ cat /proc/scsi/scsi Attached devices: Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: HTS421210H9AT00 Rev: HABO Type: Direct-Access ANSI SCSI revision: 05 Host: scsi0 Channel: 00 Id: 01 Lun: 00 Vendor: HL-DT-ST Model: DVDRAM GSA-4082N Rev: HR02 Type: CD-ROM ANSI SCSI revision: 05
Essayez aussi la commande suivante pour obtenir des infos sur votre processeur :
$ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 13 model name : Intel(R) Pentium(R) M processor 1.70GHz .....
3.11 /root
C’est le répertoire personnel de l’administrateur. Les répertoires personnles des autres utilisateurs se situent dans /home.
3.12 /sbin
Il contient de nombreuses commandes de base (en binaire) réservées à l’administrateur root, par exemple fdisk l’outil de partitionnement ou ifdown qui permet de désactiver un périphérique réseau.
3.13 /srv
Ce répertoire peut contenir des données concernant les services proposés par la machine.
3.14 /sys
Avec /proc, l’autre système de fichiers virtuel renseigant le noyau sur l’état des périphériques, des module, firmwares etc…
3.15 /tmp
C’est le répertoire contenant les fichiers temporaires. C’est là que les programmes stockent les données temporaires pour les effacer ensuite.
3.16 /usr
Ce dossier (unix system resources) contient des éléments non indispensables au fonctionnement minimal du système. On y trouve par exemple :
/usr/binle dossier contenant une (très longue) liste de programmes installés sur la machine (firefox, gimp, openoffice…)/usr/sbinle dossier contenant des commandes d’administration système non indispensables au démarrage de Linux/usr/lible dossier des bibliothèques logicielles nécessaires pour les pogrammes de/usr/bin/usr/sharele dossier des ressources partagées par les programmes de/usr/bin:/usr/share/wallpaperscontient… devinez ;-)/usr/share/pixmapscontient de nombreuses icônes/usr/share/mancontient les pages de manuel qu’on appelle par la commandeman
/usr/srccontient le code source du noyau et de différents logiciels
3.17 /var
Ce dossier contient les informations variables liées à la machine comme
- les journaux (fichiers recensant les évènements survenus sur la machine) par exemple
/var/crash/ /var/cache/apt/archives/une sauvegarde des paquets téléchargés avant leur installation par apt ou synaptic/var/log/fichiers de log (traces des activités des processus)/var/spoolles files d’attente des services :/var/spool/cupsen attente d’impression/var/spool/crongérées par le planificateur de tâches
4. Informations sur le système
| Quel est le système ? | lsb_release -idc → affiche le nom de la distribution linux uname -a → affiche diverses informations système cat /proc/cpuinfo → affiche des informations sur le microprocesseur (type, fréquence, cache …) |
| Depuis l’ordinateur est-il actif ? | uptime → affiche l’heure, la durée d’activité du système, le nombre d’utilisateurs … |
| Qu’en est-il des disques, de la mémoire, du microprocesseur ? | mount → affiche la liste des disques montés. df -ah (df : disk free) → affiche au format humain l’espace total, occupé, libre sur tous les disques. du -ah (du: directory use) → affiche au format humain la taille du répertoire courant du -h → affiche la taille du répertoire courant et de ses sous-répertoires free ou cat /proc/meminfo → affiche des informations sur la mémoire (totale, libre, swap …). ps aux → permet de lister les processus actifs et la harge mémoire et cpu qu’ils représentent |
| Qui suis-je, où suis-je et qui est ou était connecté au système ? | whoami → affiche vos coordonnées dans le système. pwd → affiche le nom du répertoire où vous vous trouvez last → affiche la liste des dernières connexions. |
| Quelles sont la date et l’heure ? | date → affiche la date et l’heure. cal → affiche un calendrier du mois en cours. cal 1789 → affiche le calendrier de l’an 1789 date MMDDHHmmAA → Règle la date (MM=mois, DD=jour, HH=heure, mm=minutes, AA=année) → Exemple : 1224235907 = une minute avant noël 2007 |
| Quels sont les composants dans mon ordinateur | lspci → liste les cotrôleurs usb, cartes réseau, cartes graphiques contenues dans votre ordinateur lsusb → liste les périphériques usb branchés sur la machine |
5. Quelques exemples de commandes en ligne
5.1 Transformer tous les ogg en wav dans le répertoire courant
$ for i in *.wav ; do oggdec $i; done
5.2 Transformer tous les wav en mp3 dans le répertoire courant
$ for i in *.wav ; do lame $i; done
5.3 Remplacer tous les espaces dans tous les fichiers du répertoire courant par des _ :
$ for i in *\ *; do mv "$i" `echo $i | tr " " "_"`; done
5.4 Renommer tous les fichiers mp3 en 001.mp3, 002.mp3 etc… :
$ SEQ="000"; i=0; for f in *.mp3; do filename="${SEQ:${#i}}$i.mp3"; mv $f $filename; ((i++)); done
5.5 Mettre les noms de fichiers en minuscules :
$ for i in *; do mv "$i" `echo $i | tr [:upper:] [:lower:]`
5.6 Changer les extensions jpeg de tous les fichiers d’un réperoire en jpg
$ for i in *.jpeg; do mv $i `basename $i jpeg`jpg; done
5.7 Remplacer une expression par une autre dans tous les fichiers .mp3 du répertoire courant
Dans cet exemple, on remplace bach par J-S_Bach
$ perl -i.bak -pe 's/bach/J-S_Bach/g *.mp3
5.8 Renommer tous les fichiers de la forme *titi* par *toto*
$ for i in *; do mv $i `echo $i | sed -e "s/titi/toto/g"`; done
5.9 Imprimer 4 pages de input.pdf sur chaque feuille ici : la 12, la 10 et de 20 à 30 dans out.pdf
$ pdfnup input.pdf --pages 12,10,20-30 --nup 2x2 --outfile out.pdf
l’utilitaire pdfnup est présent dans le paquet
pdfjam.
5.10 Concaténer tous les pdf du dossier en un seul nommé out.pdf
$ pdfjoin --outfile out.pdf *.pdf
5.11 Remplacer les esapces par des _ dans tous les noms des fichiers du répertoire courant
$ for i in *\ *; do mv "$i" `echo $i | tr " " "_"`; done
Explication :
for i in *\ *, fait que la variable i prend succesivement comme valeur chacun des noms des fichiers du répertoire courant contenant un espace (notez bien l’espace après le \, c’est ainsi que l’on déclare un espace dans un nom sous linux). Pour chaque valeur de i on exécute une commande étrange…
- mv pas de problème c’est la commande pour renommer un fichier (oui, déplacer ou renommer un fichier sont deux actions équivalentes).
- C’est avec “Dollar i” que l’on récupère la valeur qui est dans i et qu’elle est passée comme premier argument de mv.
- Donc la dernière commande, la plus bizarre, est chargée de transformer le nom de fichier Dollar i en un nom dont les espaces ont étés remplacés par des _. Elle fonctionne de manière très simple car tr est une commande unix conçue pour effectuer des remplacements… La subtilité réside dans l’utilisation des ` (anti-quote). Ils sont là pour “protéger” la commande (qui est en réalité un enchainnement de commandes comportant une redirection - symbole |) et ainsi indiquer que c’est l’ensemble de la commande qui doit être passé comme second argument à mv.
5.12 Couper film.avi en film1.avi(la première heure) + film2.avi(le reste)
$ mencoder -endpos 1:00:00 film.avi -oac copy -ovc copy -o film1.avi $ mencoder -ss 1:00:00 film.avi -oac copy -ovc copy -o film2.avi
5.13 Encoder une vidéo pour un palm
Après avoir installé
mencoder tapez la commande suivante (en une seule ligne)
$ mencoder input.avi -oac mp3lame -lameopts abr:br=25
-ovc lavc -lavcopts vcodec=mpeg4:vhq:v4mv:vqmin=2:vbitrate=250 -vf pp=de,scale=320:131 -ofps 12 -o output.avi
Explication :
- abr:br=25 : bitrate audio=25kB/s
- lavc -lavcopts : utilisation de la bibliothèque logicielle libavcodec avec les options qui suivent :
- vcodec=mpeg4:vhq:v4mv:vqmin=2:vbitrate=250 : codec mpeg4(DivX) bitrate vidéo=250kB/s
- scale=180:131 : largeur=180, hauteur=131
- -ofps 12 : 12 images par secondes
Avec ces réglages, j’obtiens un fichier de qualité acceptable parfaitement lisible sur mon Zaurus.
D’autres infos sur http://www.hyjoo.com/sujet-24236.html
5.14 Encoder une vidéo pour un téléphone portable
Source :http://slist.lilotux.net/linux/3gp/
D’abord, retailler la vidéo sans le son
- pour une vidéo au format de base 4/3, la commande suivante fonctionne bien :
$ mencoder input.mpg -nosound -ovc lavc -lavcopts vcodec=mpeg4 -vop expand=176:144,scale=176:-2 -o output.avi -ofps 12
- pour une vidéo 16/9, il serait peut être utile de couper un peu à gauche et à droite pour gagner en hauteur. Essayez plutôt cette commande : :
$ mencoder input.mpg -nosound -ovc lavc -lavcopts vcodec=mpeg4 -vop crop=176:144,expand=250:144,scale=250:-2 -o output.avi -ofps 12
- pour une vidéo au format de base 4/3, dans laquelle vous voulez incruster les sous-titres (au format srt récupérés) que vous décalez de deux secondes. Essayez la commande suivante (en une seule ligne) :
$ mencoder input.mpg -nosound -ovc lavc -lavcopts vcodec=mpeg4 -sub sousTitres.srt -subdelay -2 -vop
crop=176:144,expand=250:144,scale=250:-2 -o output.avi -ofps 12
Ensuite extraire le son et enfin réinclure le son au bon format dans la vidéo 3gp :
$ mplayer -vo null -ao pcm -af resample=8000,volume=+4db:sc input.mpg $ ffmpeg -i output.avi -i audiodump.wav -b 128k -ac 1 -ab 16k -map 0.0 -map 1.0 output.3gp
Testé sur un Samsung-E840 avec une vidéo de 25 minutes. Résultat : un fichier de 25Mo tout à fait convenable pour l’écran du téléphone.
5.15 Encoder une vidéo pour le web (format flv)
Source : http://www.billyboylindien.com/blog/tutos/convertir-videos-avi-wmv-flv/
$ mencoder video.avi -forceidx -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames -of lavf -oac mp3lame -lameopts abr:br=56 -srate 22050 -ovc lavc -lavcopts vcodec=flv:vbitrate=250:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -vf scale=360:240 -o video2.flv
5.16 Convertir les ogg en mp3 avec un petit exécutable bash
#!/bin/bash
find_tag() {
TAG=`ogginfo "$1" | grep -i "$2" | awk -F"=" '{print $2}'`
}
echo "-----------------------------------------------------"
echo "[1] ogg -> mp3"
echo "[2] ogg -> mp3 + effacer ogg"
echo "Que souhaitez-vous ? [1]"
read choice
if (test -z $choice); then
compt=1
fi
echo "-----------------------------------------------------"
echo "Numero du premier fichier mp3 ? [1]"
read compt
if (test -z $compt); then
compt=1
fi
echo "-----------------------------------------------------"
echo "Nom de l'album"
read album
echo "Nom de l'artiste"
read artiste
echo "-----------------------------------------------------"
echo ""
for fichier in *.ogg
do
mv "$fichier" `echo $fichier | tr " " "_"`
done
echo ""
mkdir -p mp3
SEQ="000"
for fichier in *.ogg
do
filenumber="${SEQ:${#compt}}$compt"
find_tag $fichier title && titre=`echo $TAG | tr "/" " "`
echo "-----------------------------------------------------"
echo "Conversion de $titre"
echo "-----------------------------------------------------"
oggdec $fichier -o `echo "$fichier.wav"`
lame -h `echo "$fichier.wav"` -tt "`echo "mp3/$filenumber $titre.mp3"`"
lltag --yes -t "$titre" -n "$filenumber" -A "$album" -a "$artiste" "`echo "mp3/$filenumber $titre.mp3"`"
((compt++))
done
rm *.wav
if (test $choice -eq 2); then
mv mp3/* .
rm *.ogg
rm -rf mp3/
fi
echo "-----------------------------------------------------"
echo "Travail terminé. A+ ;-)"
5.17 Trouver un fichier avec locate
$ locate nom_du_fichier
Cette commande affichera toutes les occurrences trouvées. Que ce soit une partie du nom d’un répertoire ou d’un fichier. Il se peut donc qu’il y ait beaucoup d’occurrences !
Pour que la commande locate fonctionne, il faut préalablement créer sa base de données utile. Il faut pour cela éxecuter la commande updatedb en tant que root.
$ sudo updatedb
Cette commande permet également de mettre à jour la base de données (sinon les modifications du système de fichier ne seront pas prises en compte). Sous Ubuntu, updatedb est exécutée régulièrement et automatiquement.
5.18 Trouver un fichier avcec find
$ find / -name "fichier.txt"
Cette commande affichera tous les fichiers se nommant fichier.txt à partir du répertoire racine. Il est possible d’utiliser les expressions régulières :
$ find / -name "toto*"
Le résultat sera tous les fichiers et répertoires commençant par toto, suivi de n’importe quelle occurrence. Pour éviter d’avoir les “permission denied” sur des répertoires :
$ find / -type f -name "le_fichier_a_chercher" 2>/dev/null
find est très puissant, et permet aussi d’employer les expressions régulières, comme le montre l’exemple suivant qui permet de trouver tous les fichiers contenant une chaine ou une regexp dans une arborescence :
$ find <repertoire_depart> -type f -exec grep -H "<chaine_ou_regexp>" {} ;
Lorsqu’il s’agit de gros volumes de fichiers :
$ find <repertoire_depart> -type f | xargs grep -H "<chaine_ou_regexp>"
Renommer tous les fichiers contenant chaine en str :
$ for i in `ls *chaine*` ; do mv $i `echo $i | sed 's/chaine/str'` ; done
En récursif sur une arborescence :
$ for i in `find . -type f -name "*chaine*" ; do mv $i `echo $i | sed 's/chaine/chene'` ;done
Il y a même moyen d’effectuer des opérations sur fichier en appelant des scripts externes; par exemple : changer toutes les option=true en option=false dans tous les fichiers *.conf en recursif en gardant une copie de sauvegarde :
$ find . -type f -name "*.conf" | xargs perl -pi.save -e 's/option\=true/option\=false/'
