shell指令碼執行後檔名自帶?標記

2021-08-22 04:30:49 字數 402 閱讀 6692

上午除錯乙個shell指令碼,指令碼內容如下:

touch a.txt

mv  a.txt $(date +%m_%d).log

提示錯誤:mv: cannot stat `a.txt': no such file or directory,手動touch a.txt 發現 指令碼執行成功。

然後ls 檢視,發現了檔名a.txt?  和  08_03.log? 很疑惑。

1)以為是^m 結尾導致的,在檔案中查詢,沒發現該問題。

2)以為是日期賦值錯誤,然後再嘗試其他方法,發現沒問題,

3)再其他linux環境下重新寫指令碼,執行也沒問題。

最終檢視檔案格式,發現該指令碼是dos格式,用vi 開啟 

:set ff=unix

然後再執行指令碼,問題解決。

linux unzip 解壓後檔名亂碼

參考 方法一 在windows上zip的包,rz上傳到linux下,發現出現亂碼。記錄下解決過程 1.確定windows上的預設字符集 在windows平台下,直接在命令列中,輸入 chcp 在顯示的結果中,會出現乙個數字,不用管這個數字具體代表哪一種字符集。記錄這個數字,一般為936 2.loca...

shell指令碼 批量修改檔名 檔名中新增字元

舉例如下 批量建立10個隨機字串的檔案,要求每個檔名後面新增 aaa,字尾名不變 root localhost goodboy ls adddbbdedf.html baacjaiija.html bhcfaabcfh.html dgjdcdfbca.html efejadfdji.html agd...

shell指令碼 批量修改檔名 刪除檔名中字元

舉例如下 批量改名,刪除檔名中多餘字元 目錄下檔名為如下,要求去掉 finished。可以實現的方法有很多種 方法一 for迴圈結合sed替換 baby localhost for file in ls jpg do mv file echo file sed s finished g done 方...