Commande dos2unix sous Linux
Encyclopédie des commandes Linux
dos2unix est un utilitaire permettant de convertir des fichiers texte du format DOS/Windows au format Unix/Linux. Il résout principalement les problèmes causés par les différences de caractères de nouvelle ligne entre différents systèmes d'exploitation.
Fonctionnalités principales:
- Convertit des fichiers texte au format DOS/Windows (fins de ligne CRLF) au format Unix/Linux (fins de ligne LF)
- Gère les problèmes d'encodage des fichiers (facultatif)
- Conversion par lots de plusieurs fichiers
Pourquoi avez-vous besoin de dos2unix
Différences de caractères de nouvelle ligne
Différents systèmes d'exploitation utilisent différents caractères de nouvelle ligne :
- Windows/DOS: utilise un retour chariot + un saut de ligne (CRLF, c’est-à-dire
rn) - Unix/Linux: utilise uniquement un saut de ligne (LF, c’est-à-dire
n) - Mac OS (anciennes versions): utilise un retour chariot (CR, c’est-à-dire
r)
Symptômes du problème
Lorsque des fichiers texte créés sous Windows sont ouverts sur un système Linux :
- Peuvent apparaître
^Mcaractères (visibles dans vi) - Les fichiers de script peuvent ne pas s’exécuter correctement
- Certains outils (tels que grep, awk) peuvent ne pas traiter le texte correctement
Installation de dos2unix
La plupart des distributions Linux n’installent pas dos2unix par défaut ; il doit être installé manuellement :
Ubuntu/Debian
Exemple
sudo apt-get install dos2unix
CentOS/RHEL
sudo yum install dos2unix
Vérifier l'installation
dos2unix --version
Syntaxe de base
dos2unix [选项] 文件...
Options courantes
| Option | Description |
|---|---|
-k |
Conserver l'horodatage du fichier inchangé |
-f |
Forcer la conversion, ignorer la vérification des fichiers binaires |
-q |
Mode silencieux, ne pas afficher les messages d'avertissement |
-o |
Écraser le fichier d'origine (comportement par défaut) |
-n |
Mode nouveau fichier, conserver le fichier d'origine, écrire dans un nouveau fichier |
-c |
Convertir l'encodage (doit être utilisé avec-eoption) |
-e |
Spécifier l'encodage cible (tel que-e utf8) |
-b |
Créer un fichier de sauvegarde (ajouter.baksuffixe) |
Exemples d’utilisation
1. Conversion de base
dos2unix file.txt
Cela modifiera directement le fichier file.txt
2. Conserver le fichier d'origine
dos2unix -n file.txt newfile.txt
Le fichier d'origine reste inchangé ; le résultat de la conversion est enregistré dans newfile.txt
3. Conversion par lots
dos2unix *.txt
Convertir tous les fichiers .txt du répertoire courant
4. Convertir récursivement les répertoires
find . -type f -name "*.sh" -exec dos2unix {} ;
Convertir tous les fichiers .sh du répertoire courant et de ses sous-répertoires
5. Préserver les horodatages
dos2unix -k script.py
Convertir script.py mais conserver sa date de modification inchangée
Scénarios d'application pratiques
1. Correction des scripts transférés depuis Windows
Exemple
dos2unix backup_script.sh
# Ajouter la permission d'exécution
chmod +x backup_script.sh
# Exécuter le script
./backup_script.sh
2. Gestion des fichiers de configuration partagés par l'équipe de développement
Exemple
find /etc/myapp/conf.d/ -type f -exec dos2unix {} ;
3. Préparation des fichiers à téléverser vers un serveur Linux
dos2unix -b *.php # 转换并创建备份
Précautions
- Fichiers binaires: N'utilisez pas dos2unix sur les fichiers binaires (comme les images, les PDF) ; cela endommagera le fichier
- Gestion de versions: Dans les systèmes de gestion de versions tels que Git, il est préférable de configurer uniformément la gestion des caractères de fin de ligne
- Problèmes d'encodage: Si le fichier contient des caractères non ASCII, vous devrez peut-être utiliser le
-cet-eoption pour gérer l'encodage - Sauvegarde: Il est recommandé d'utiliser l'
-boption pour créer une sauvegarde avant de convertir des fichiers importants
Solutions alternatives
Si dos2unix n'est pas installé sur le système, vous pouvez utiliser les méthodes alternatives suivantes :
1. Utilisation de la commande tr
tr -d 'r' unixfile.txt
2. Utilisation de la commande sed
sed -i 's/r$//' winfile.txt
3. Utilisation de vim
Exemple
:wq
Résumé
dos2unix est un outil pratique pour gérer les problèmes de format de fichiers texte multiplateformes, particulièrement adapté aux :
- Administrateurs système assurant la maintenance de serveurs
- Développeurs collaborant sur différentes plateformes
- Gestion des scripts et des fichiers de configuration migrés de Windows vers Linux
Maîtriser la commande dos2unix permet d'éviter efficacement divers problèmes causés par les différences de caractères de nouvelle ligne et d'améliorer l'efficacité du travail.
Autres extensions