Tricks Unix
De DocUnix.
Suppression de doublon de répertoire ou fichier apparemment identique
ls -l total 48 drwxr-xr-x 16 root sys 8192 Aug 7 2009 Package1 drwxr-xr-x 6 root sys 96 Oct 26 11:12 Package2 drwxr-xr-x 11 root sys 8192 Jul 17 2006 Package3 drwxr-xr-x 8 root sys 8192 Sep 28 2005 Package4 drwxr-xr-x 3 root sys 96 Oct 26 10:40 Package2
option du ls -b List nonprinting characters in the octal \ddd notation.
ls -lb total 48 drwxr-xr-x 16 root sys 8192 Aug 7 2009 Package1 drwxr-xr-x 6 root sys 96 Oct 26 11:12 Package2 drwxr-xr-x 11 root sys 8192 Jul 17 2006 Package3 drwxr-xr-x 8 root sys 8192 Sep 28 2005 Package4 drwxr-xr-x 3 root sys 96 Oct 26 10:40 Packgae2\010\010\010\010age2
Récupération du numéro d'inode :
ls -lib . total 48 3784 drwxr-xr-x 16 root sys 8192 Aug 7 2009 Package1 3774 drwxr-xr-x 6 root sys 96 Oct 26 11:12 Package2 3780 drwxr-xr-x 11 root sys 8192 Jul 17 2006 Package3 3785 drwxr-xr-x 8 root sys 8192 Sep 28 2005 Package4 10869 drwxr-xr-x 3 root sys 96 Oct 26 10:40 Packgae2\010\010\010\010age2
L'inode qui nous intéresse est le 10869. Pour en avoir la confirmation :
find . -xdev -inum 10869 -exec ls -libd {} \;
10869 drwxr-xr-x 3 root sys 96 Oct 26 10:40 ./Packgae2\010\010\010\010age2
Pour pouvoir supprimer le fichier, il faut le renommer; ici en toto
find . -xdev -inum 10869 -exec mv {} toto \;
Et pour terminer la manipulation, il suffit de faire un rm de toto (répertoire).
rm -ri toto
Merci Jean-Gabriel pour l'astuce.
unix2dos et dos2unix
Les commandes aix2dos et dos2aix d'AIX 4.1 ne sont plus fournies par IBM. L'astuce est de créer dans le profile générale du serveur (/etc/profile) 2 alias avec "sed" permettant la modification des fins de lignes.
alias dos2aix='sed s/^M$//' alias aix2dos='sed s/$/^M/' alias dos2unix='sed s/^M$//' alias unix2dos='sed s/$/^M/'
Attention, sous vi pour générer le caractère ^M, il faut taper <ctrl>v<ctrl>m
Transcodage de jeu de caractère
Typiquement, il est parfois nécessaire de transcoder des fichiers de UTF-8 vers ISO-8859 ou vis-versa. La commande a utiliser sous unix est iconv.
Par exemple, pour transcoder de l'UTF-8 vers du ISO8859-1 :
iconv -f ISO-8859-1 -t UTF-8 <nom de fichier>

