====== dos2unix: Handling Permission Errors ====== ===== Overview ===== When converting a file from Windows (DOS) line endings to Unix line endings, the usual `dos2unix` syntax may sometimes result in a **permission error**. For example: dos2unix filename may produce an error similar to: dos2unix: Failed to change the permissions of temporary output file: Operation not permitted > This can happen when `dos2unix` does not have the necessary permissions to modify or replace the original file. ===== Solution ===== Instead of converting the file in-place using the standard syntax, use the `-n` option to explicitly specify an input (source) file and an output (target) file: dos2unix -n For example: dos2unix -n input.txt output.txt This converts `input.txt` to Unix line endings and saves the result as `output.txt`, leaving the original file unchanged. ===== Overwriting the Original File ===== If you want to convert the file while keeping the same filename, you can specify the same path as both the source and target: dos2unix -n /path/to/file.txt /path/to/file.txt This rewrites the file in Unix format without relying on `dos2unix` to replace the original file in the usual way. ===== Summary ===== | Command | Purpose | | ----------------------------------- | --------------------------------------- | | `dos2unix file.txt` | Convert a file in-place (may throw an error | | `dos2unix -n source.txt target.txt` | Convert to a separate new file | | `dos2unix -n file.txt file.txt` | Convert while keeping the same filename |