Mon disque Ubuntu (18.04) est synchronisé avec un lecteur Windows. Certains de mes noms et noms de fichiers à Ubuntu contiennent des caractères non autorisés dans Windows et cela provoque des problèmes de synchronisation. Je souhaite trouver ces caractères et les supprimer des noms de fichiers/dossiers ou de remplacer ces caractères par un "x". Cela doit être fait de manière récursive sur l'arborescence de dossiers/répertoires.
Comment puis-je faire cela rapidement?
Voici les personnages interdits dans Windows ( modifié à partir de la réponse de Christopher Oezbek ):
< (less than)
> (greater than)
: (colon - sometimes works, but is actually NTFS Alternate Data Streams)
" (double quote)
\ (backslash)
| (vertical bar or pipe)
? (question mark)
* (asterisk)
Essayez rename
, vous devez d'abord l'installer.
Sudo apt-get install rename
Vous trouverez ci-dessous un exemple, vous pouvez changer *
à l'endroit où votre fichier/dossier situé.
~$ ls
'1<.txt' 3:.txt '5\.txt' '7??.txt'
'2>.txt' '4"d".txt' '6|.txt' '8*.txt'
~$ rename -v 's/[?<>\\:*|\"]/x/g' *
1<.txt renamed as 1x.txt
2>.txt renamed as 2x.txt
3:.txt renamed as 3x.txt
4"d".txt renamed as 4xdx.txt
5\.txt renamed as 5x.txt
6|.txt renamed as 6x.txt
7??.txt renamed as 7xx.txt
8*.txt renamed as 8x.txt
~$ ls
1x.txt 2x.txt 3x.txt 4xdx.txt '5x.txt' 6x.txt 7xx.txt 8x.txt