Un conflit entre les noms de fichiers source et le système de fichiers de destination peut provoquer votre erreur cannot create regular file
. Si vous copiez sur une clé USB, vous utilisez probablement le système de fichiers vfat ou fat32, qui est soumis aux restrictions habituelles de noms de fichiers Windows.
Pour observer ceci, essayez de créer un fichier nommé :
, qui est un caractère réservé de Windows.
$ cp /dev/null /chemin/vers/dest/:
cp: cannot create regular file '/chemin/vers/dest/:': Invalid argument
Pour voir l'erreur Operation not permitted
séparément, essayez de créer un lien symbolique sans copier.
$ ln -s somesillysymlink /chemin/vers/dest/symlink
ln: failed to create symbolic link '/chemin/vers/dest/symlink': Operation not permitted
Si vous voyez ces erreurs, c'est probablement la cause de votre problème.
Probablement l'approche la plus simple est de créer une archive qui est libre des restrictions de nommage que vous avez rencontrées, et qui préserve également les liens symboliques. Par défaut, tar
et 7z
préservent les liens symboliques. zip
préserve les liens symboliques avec le drapeau approprié. Chacun de ces outils peut stocker des fichiers qui ont des caractères réservés de Windows dans leurs noms. Voir aussi “Comment puis-je zip/compresser un lien symbolique?”
Remplacer le système de fichiers vfat par quelque chose de plus convivial pour Linux – comme ext4 – soulagerait votre problème, mais au prix d'une portabilité réduite. Presque tous les systèmes Linux pourraient monter le lecteur, mais d'autres systèmes courants nécessiteraient un travail supplémentaire. Voir “Créer une partition ext4 depuis la console” et la page de manuel de mke2fs
pour des détails sur la création. Voir “Comment lire les partitions ext4 sur Windows?”, “Comment monter un système de fichiers ext4 sur OS X?”, et “Comment monter un système de fichiers Ext4 avec OS X Fuse” si vous avez besoin de déplacer ce lecteur vers d'autres systèmes d'exploitation.