Commande unix2dos sous Linux

Linux 命令大全Référence des commandes Linux


unix2dosC'est un utilitaire pour convertir des fichiers texte au format Unix/Linux vers le format DOS/Windows. Il gère principalement le problème des fins de ligne dans les fichiers texte.

Dans les systèmes Unix/Linux, chaque ligne d'un fichier texte se termine parsaut de ligne (LF,n)comme terminateur ; tandis que dans les systèmes Windows, chaque ligne se termine parretour chariot + saut de ligne (CRLF,rn)comme terminateur. Cette différence peut entraîner des problèmes de formatage lors du partage de fichiers texte entre différents systèmes.


Pourquoi avez-vous besoin d'unix2dos

Vous pouvez avoir besoin d'utiliser unix2dos lorsque vous travaillez dans les scénarios suivants :

  1. Collaboration multiplateforme: Lorsque des scripts ou des fichiers de configuration écrits sous Linux doivent être utilisés sous Windows
  2. Transfert de fichiers: Transférer des fichiers depuis des systèmes Unix vers des systèmes Windows via FTP ou d'autres méthodes
  3. Compatibilité des outils: Certains outils Windows (tels que Notepad) ne peuvent pas afficher correctement les fins de ligne qui ne contiennent que LF

Installation d'unix2dos

La plupart des distributions Linux n'installent pas unix2dos par défaut, mais il peut être facilement installé via le gestionnaire de paquets :

Systèmes Debian/Ubuntu

Exemple

sudo apt-get update
sudo apt-get install dos2unix

Systèmes CentOS/RHEL

sudo yum install dos2unix

Remarque

unix2dosetdos2unixIls sont généralement inclus dans le même paquet. Installation dudos2unixpaquet installera les deux outils en même temps.


Syntaxe de base

unix2dos [选项] 文件...

Options courantes

Option Description
-bou--keep-bom Préserver la marque d'ordre des octets (BOM) UTF-8
-cou--convmode Mode de conversion (ascii, 7bit, iso, mac)
-fou--force Forcer la conversion des fichiers binaires
-hou--help Afficher les informations d'aide
-kou--keepdate Préserver les horodatages des fichiers
-Lou--license Afficher la licence du logiciel
-lou--newline Ajouter uniquement des sauts de ligne
-mou--add-bom Ajouter la marque d'ordre des octets UTF-8
-nou--newfile Écrire dans un nouveau fichier (ne pas modifier le fichier d'origine)
-oou--oldfile Écrire dans le fichier d'origine (comportement par défaut)
-qou--quiet Mode silencieux, ne pas afficher les avertissements
-Vou--version Afficher les informations de version

Exemples d'utilisation

Exemple 1 : Conversion de base

Convertir un fichier au format Unix au format DOS :

unix2dos file.txt

Cela vafile.txtconvertir les fins de ligne de LF en CRLF, en modifiant directement le fichier d'origine.

Exemple 2 : Préserver l'original et créer un nouveau fichier

Si vous souhaitez préserver le fichier d'origine et créer un nouveau fichier converti :

unix2dos -n unixfile.txt dosfile.txt

Exemple 3 : Convertir plusieurs fichiers par lot

Utilisez des jokers pour convertir plusieurs fichiers :

unix2dos *.txt

Exemple 4 : Convertir récursivement tous les fichiers d'un répertoire

Combinez avec lafindcommande pour traiter récursivement les répertoires :

find . -name "*.sh" -exec unix2dos {} ;

Exemple 5 : Préserver les horodatages des fichiers

Convertissez les fichiers mais ne modifiez pas leurs horodatages :

unix2dos -k file.txt

Scénarios d'application pratiques

Scénario 1 : Script shell exécuté sous Windows

Supposons que vous ayez écrit un script shell Linux, mais que vous deviez l'exécuter dans Git Bash ou WSL sous Windows :

unix2dos script.sh

Scénario 2 : Fichiers de configuration utilisés sur plusieurs plateformes

Lorsque les fichiers de configuration de votre application doivent être partagés sous Windows et Linux :

unix2dos config.properties

Scénario 3 : Partage de documents avec des utilisateurs Windows

Convertissez les fichiers Markdown au format Windows pour que vos collègues puissent les modifier avec Notepad :

unix2dos README.md

Précautions

  1. Fichiers binaires: Évitez d'utiliser unix2dos sur les fichiers binaires (tels que les images, les archives compressées) à moins de savoir clairement ce que vous faites (vous pouvez utiliser-fforcer la conversion)
  2. Fichiers de sauvegarde: Lorsque vous modifiez directement le fichier d'origine, il est recommandé de sauvegarder d'abord les fichiers importants
  3. BOM UTF-8: Windows a parfois besoin d'un BOM pour reconnaître correctement l'encodage UTF-8 ; vous pouvez utiliser-moption pour ajouter
  4. Conversion inverse: Si vous devez convertir le format DOS au format Unix, utilisezdos2unixcommand

Questions fréquentes

Q1 : Comment vérifier le type de fin de ligne d'un fichier ?

Utilisez lafilecommande :

file filename.txt

ou utilisezcatpour afficher les caractères spéciaux :

cat -A filename.txt

Le format Unix affichera [symbol] à la fin de la ligne, le format DOS affichera$à la fin de la ligne, le format DOS affichera^M$。

Q2 : La taille du fichier change-t-elle après la conversion ?

Oui, parce que chaque ligne comporte un retour chariot (CR) supplémentaire, le fichier deviendra généralement légèrement plus volumineux.

Q3 : Pourquoi mon script signale-t-il des erreurs sous Windows ?

Cela peut être dû au fait que le format de fin de ligne est incorrect. Essayez de convertir avec unix2dos avant l'exécution.

Q4 : Comment détecter et convertir automatiquement dans un script ?

Vous pouvez combinerfilela commande avec des instructions conditionnelles :

Exemple

if file filename.txt | grep -q "CRLF"; puis
    echo "Le fichier est déjà au format DOS"
else
    unix2dos filename.txt
fi

Résumé

unix2dosC'est un outil simple mais puissant qui résout les problèmes de compatibilité de format de fichier texte multiplateforme. Après avoir lu cet article, vous devriez être capable de :

  1. Comprendre la différence entre les formats de fin de ligne Unix et DOS/Windows
  2. Installer et utiliser correctement la commande unix2dos
  3. Gérer divers scénarios de conversion de fichiers
  4. Éviter les erreurs de conversion courantes

N'oubliez pas que, dans un environnement de collaboration multiplateforme, maintenir la cohérence des formats de fichiers texte peut éviter de nombreux problèmes inutiles.


Linux 命令大全Référence des commandes Linux

Autres extensions