
unix2dos Command in Linux
The unix2dos command is a useful tool in Linux for changing text files from Unix format to DOS format. This is important when moving files between Unix/Linux and DOS/Windows systems because each system uses a different way to mark the end of a line.
In Unix, a line ends with a line feed (LF) character, while in DOS/Windows, a line needs both a carriage return (CR) and a line feed (LF) character. The unix2dos command adds the CR character to every line, so files work right on DOS/Windows systems.
The unix2dos command is very useful for developers, system administrators, and anyone who works with different systems. When text files are shared or need to be processed between Unix/Linux and Windows, this tool helps ensure everything works as it should.
Table of Contents
Here is a comprehensive guide to the options available with the unix2dos command −
- Installing of unix2dos Command
- Syntax of unix2dos Command
- unix2dos Command Options
- Examples of unix2dos Command in Linux
Installing of unix2dos Command
Before using the unix2dos command, you may need to install it on your Linux system, as it is not always included by default. The unix2dos utility is part of the dos2unix package, which can be installed using your system's package manager. Here are the commands to install unix2dos on different Linux distributions −
Debian-Based Systems (Ubuntu, Linux Mint, etc.)
To install the dos2unix package on Debian-based systems −
sudo apt install dos2unix
Red Hat-Based Systems (RHEL, CentOS, Fedora)
For Red Hat-based systems, use the following commands −
sudo yum install dos2unix
Or,
sudo dnf install dos2unix
Arch Linux and Manjaro
On Arch Linux and its derivatives −
sudo pacman -S dos2unix
openSUSE
For openSUSE systems, use Zypper to install dos2unix −
sudo zypper install dos2unix
Syntax of unix2dos Command
The basic syntax of the unix2dos command is as follows −
unix2dos [OPTION]... [FILE]...
- [OPTION]: Flags that modify the behavior of the command.
- [FILE]: Specifies the file(s) to be converted. If no file is provided, unix2dos reads from standard input (STDIN).
unix2dos Command Options
The unix2dos command offers various options to customize the conversion process, ensuring flexibility and precision.
Options | Description |
---|---|
--allow-chown | Permits changes to file ownership during the conversion process. |
-ascii | Converts only the line breaks in a file, maintaining ASCII character encoding (default behavior). |
-iso | Converts between DOS character encoding and the ISO-8859-1 character set for compatibility. |
-1252 | Uses the Windows Code Page 1252, designed for Western European languages. |
-437 | Employs the DOS Code Page 437, the default character set for the U.S. |
-850 | Converts using DOS Code Page 850, optimized for Western European languages. |
-860 | Utilizes DOS Code Page 860, designed for Portuguese text. |
-863 | Converts text using DOS Code Page 863, appropriate for French Canadian language. |
-865 | Implements DOS Code Page 865, tailored for Nordic language text. |
-7 | Reduces 8-bit characters to 7-bit ASCII by replacing them with spaces. |
-b, --keep-bom | Preserves the Byte Order Mark (BOM) in files when converting. |
-c, --convmode | Allows specification of the conversion mode (ascii, 7bit, iso, or mac). Defaults to ascii. |
-e, --add-eol | Adds a missing line break to the end of a file, if one doesn't already exist. |
-f, --force | Forcibly converts binary files, even if they are typically skipped. |
-h, --help | Displays helpful information about the command's usage and available options. |
-i, --info[=FLAGS] | Shows file details, such as type and encoding. |
-k, --keepdate | Retains the original file's timestamp after conversion. |
-L, --license | Displays the license information for the unix2dos utility. |
-l, --newline | Adds an extra newline character to the output. |
-m, --add-bom | Adds a Byte Order Mark to the output, with UTF-8 as the default encoding. |
-n, --newfile | Creates a new file for the output while leaving the original file unchanged. |
--no-allow-chown | Disables file ownership changes during the conversion (default behavior). |
--no-add-eol | Prevents the addition of a line break to the file's end, keeping it as is (default behavior). |
-O, --to-stdout | Outputs the converted content to the terminal (standard output) instead of a file. |
-o, --oldfile | Overwrites the original file with the converted content (default behavior). |
-q, --quiet | Silences all warnings and messages during the conversion process. |
-r, --remove-bom | Removes the Byte Order Mark from the file. |
-u, --keep-utf16 | Preserves the UTF-16 encoding in the output file. |
-ul, --assume-utf16le | Assumes the input file is in UTF-16 Little Endian format. |
-ub, --assume-utf16be | Assumes the input file is in UTF-16 Big Endian format. |
-v, --verbose | Provides detailed output about the conversion process. |
-F, --follow-symlink | Follows symbolic links and converts the target files. |
-R, --replace-symlink | Converts the target file and replaces the symbolic link with the newly converted file. |
-S, --skip-symlink | Keeps symbolic links and target files unchanged (default behavior). |
-V, --version | Displays the current version of the unix2dos utility. |
Examples of unix2dos Command in Linux
Let's dive into some practical examples of the unix2dos command and see how it can be effectively applied in various Linux scenarios.
- Converting a File While Allowing File Ownership Change
- Ensuring Proper End-of-Line in a Configuration File
- Retaining Original Modification Date
- Writing the Converted Content to a New File
- Adding a Byte Order Mark for UTF-8 Files
Converting a File While Allowing File Ownership Change
Suppose you have a file named project_notes.txt that was created on a shared server with specific ownership restrictions. You want to convert this file from Unix line endings (LF) to DOS line endings (CRLF) while allowing changes to its file ownership. This can be done using −
unix2dos --allow-chown project_notes.txt
The --allow-chown option permits modifications to the file's ownership during the conversion process, ensuring that the converted file can align with the ownership requirements of its new environment.

Ensuring Proper End-of-Line in a Configuration File
Imagine working on a configuration file, server_config.cfg, where the last line is missing an end-of-line character. This can lead to errors when the file is processed by certain systems. To fix this issue and convert the file to DOS format −
unix2dos -e server_config.cfg
The -e (or --add-eol) option ensures that the last line of server_config.cfg ends with a proper line break, which is crucial for compatibility with many applications.

Retaining Original Modification Date
You might have a text file named report.txt that needs conversion to DOS format but with the original modification date preserved for documentation purposes. To achieve this −
unix2dos -k report.txt
The -k (or --keepdate) option converts report.txt to DOS format without altering its original timestamp.

Writing the Converted Content to a New File
Suppose you have a file named data_unix.txt that you want to convert to DOS format but keep the original file unaltered. To create a new file with the converted content −
unix2dos -n data_unix.txt data_dos.txt
The -n (or --newfile) option takes data_unix.txt as the input file and writes the converted content to data_dos.txt. This leaves the original file unchanged, allowing you to retain both versions for comparison or backup purposes.
Adding a Byte Order Mark for UTF-8 Files
Suppose you're working with a UTF-8 encoded file named document.txt that requires a Byte Order Mark (BOM) to ensure proper interpretation by certain Windows applications. To add the BOM during conversion to DOS format −
unix2dos -m document.txt
The -m (or --add-bom) option inserts a Byte Order Mark (BOM) at the beginning of the file, which can help applications detect the file's encoding more accurately.
Conclusion
The unix2dos command helps convert text files from Unix/Linux to DOS/Windows format, which is especially handy for developers and administrators who need to work on both systems. This command has several options that ensure file compatibility. For example, you can maintain the original file timestamps, insert line breaks, and manage file encodings. These features help avoid errors.
Unix2dos is beneficial for simplifying cross-platform projects and ensuring proper text formatting. When you become skilled at using unix2dos, you can change text file formats in Linux with accuracy and without any hassle.