Commande dos2unix sous Linux

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-à-dirern)
  • Unix/Linux: utilise uniquement un saut de ligne (LF, c’est-à-diren)
  • Mac OS (anciennes versions): utilise un retour chariot (CR, c’est-à-direr)

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 update
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

# Convertir le fichier de script
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

# Convertir l'intégralité du répertoire de configuration
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

  1. Fichiers binaires: N'utilisez pas dos2unix sur les fichiers binaires (comme les images, les PDF) ; cela endommagera le fichier
  2. 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
  3. 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
  4. 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

:set ff=unix
: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.


Linux 命令大全Encyclopédie des commandes Linux

Autres extensions