- 今天做題的時候,出現了個很冷門的:
- 查找子目錄src下所有后綴為.txt的文件執行dos2unix命令,把文件從Dos格式轉換為Linux格式,正確的命令是:find src “*.txt” –exec dos2unix {} ;
- 當時並不知道,在一大堆沒用的百度之后,終於找到比較可靠的
dos2unix命令用來將DOS格式的文本文件轉換成UNIX格式的(DOS/MAC to UNIX text file format converter)。DOS下的文本文件是以\r\n作為斷行標志的,表示成十六進制就是0D 0A。而Unix下的文本文件是以\n作為斷行標志的,表示成十六進制就是0A。
DOS格式的文本文件在Linux下,用較低版本的vi打開時行尾會顯示^M,而且很多命令都無法很好的處理這種格式的文件。如果是個shell腳本,而Unix格式的文本文件在Windows下用Notepad打開時會拼在一起顯示。因此產生了兩種格式文件相互轉換的需求,對應的將UNIX格式文本文件轉成成DOS格式的是unix2dos命令。
語法格式:dos2unix [參數] [文件]
常用參數:
| -k | 保持輸出文件的日期不變 |
|---|---|
| -q | 安靜模式,不提示任何警告信息 |
| -V | 查看版本 |
| -c | 轉換模式:ASCII 7bit ISO Mac |
| -o | 寫入到源文件 |
| -n | 寫入到新文件 |
參考實例
- 最簡單的用法就是dos2unix直接跟上文件名:
[root@linuxcool ~]# dos2unix file
- 如果一次轉換多個文件,把這些文件名直接跟在dos2unix之后。(注:也可以加上-o參數,也可以不加,效果一樣)
[root@linuxcool ~]# dos2unix file1 file2 file3
[root@linuxcool ~]# dos2unix -o file1 file2 file3
- 上面在轉換時,都會直接在原來的文件上修改,如果想把轉換的結果保存在別的文件,而源文件不變,則可以使用-n參數。
[root@linuxcool ~]# dos2unix -n oldfile newfile
- 如果要保持文件時間戳不變,加上-k參數。所以上面幾條命令都是可以加上-k參數來保持文件時間戳的。
[root@linuxcool ~]# dos2unix -k file
[root@linuxcool ~]# dos2unix -k file1 file2 file3
[root@linuxcool ~]# dos2unix -k -o file1 file2 file3
[root@linuxcool ~]# dos2unix -k -n oldfile newfile
-
與該功能相關的Linux命令:
- chroot命令 – 改變根目錄
- tree命令 – 以樹狀圖列出目錄內容
- zgrep命令 – 在壓縮文件中按正則表達式來搜索
- mysqldump命令 – MySQL數據庫備份
- patch命令 – 修補文件
- gitps命令 – 報告程序狀況
- chmod命令 – 改變文件或目錄權限
- semanage命令 – 安全上下文查詢與修改
- source命令 – 在當前Shell環境中從指定文件讀取和執行命令
- mkdir命令 – 創建目錄
