Comment supprimer un fichier en ligne de commande qui contient des caractères spéciaux ?
Ci dessous plusieurs solutions, une interactive puis une autre avec les inodes.
Exemple:
$ ll ftp*
-rw-r--r-- 1 root sys 0 Apr 26 10:13 ftp.txt
-rw-r--r-- 1 root sys 0 Apr 26 10:13 ftp??
$ rm ftp^A^?\?
rm: cannot lstat `ftp\001\177?': No such file or directory
[Exit 1 ]
-1- Suppression Interactive
Avec un rm -i * on force la demande de suppression:
$ rm -i ftp*
rm: remove regular empty file `ftp.txt'? n
rm: remove regular empty file `ftp\177?'? y
-2- Avec le listing des inodes
$ ll -i ftp*
206 -rw-r--r-- 1 root sys 0 Apr 26 10:13 ftp.txt
205 -rw-r--r-- 1 root sys 0 Apr 26 10:13 ftp??
$ find . -xdev -type f -inum 205 -ls
205 0 -rw-r--r-- 1 root sys 0 Apr 26 10:13 ./ftp\177?
On force la suppression du fichier qui a l'inode numéro 205
$ find . -xdev -type f -inum 205 -exec rm -f {} \;
No comments:
Post a Comment