Linux

從文件名末尾刪除換行符

  • July 27, 2019

我正在嘗試清理 Linux NAS 上的一些文件。它們是幾年前從舊儲存中轉移過來的,現在文件和文件夾在文件\文件夾名稱的開頭和結尾包含換行符“\n”。

如果我查看它們“ls -lab”,我會得到如下所示的內容:

\n Folder_Name \n

一個類似的文章幫助我從文件名的開頭刪除了“\n”,但最後的那個是揮之不去的。

(rename $'\n' '' *)

您的系統rename似乎是 util-linux 變體1 - 在這種情況下,您可以再次執行相同的命令以刪除第二個換行符 ex.:

$ ls -Q
"\nfile name\n"
$ rename.ul $'\n' '' *
$ ls -Q
"file name\n"
$ rename.ul $'\n' '' *
$ ls -Q
"file name"

1查看所有重命名有什麼用:prename、rename、file-rename?

您可以mv像往常一樣只使用文件,只需將文件名放在引號中並按輸入鍵即可。所以:

$ ls -b
 file\n
$ mv "file
> " file
$ ls -b
 file

這應該對你有用,它在過去對我有用。它也適用於原始案例,您也只需要在文件名之前返回。

歡迎來到 Unix StackExchange!

引用自:https://unix.stackexchange.com/questions/532398