从文件名末尾删除换行符

从文件名末尾删除换行符

我正在尝试清理 Linux NAS 上的一些文件。它们是几年前从旧存储转移过来的,现在文件和文件夹在文件\文件夹名称的开头和结尾处包含换行符“\n”。

如果我查看它们“ls -lab”,我会得到如下所示的内容:

\n Folder_Name \n

一篇类似的文章帮助我删除了文件名开头的“\n”,但末尾的“\n”仍然存在。

(rename $'\n' '' *)

答案1

您的系统rename似乎是 util-linux 变体1 - 在这种情况下,您可以再次运行相同的命令来删除第二个换行符,例如:

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

1看到所有重命名是怎么回事:预命名、重命名、文件重命名?

答案2

您可以mv像往常一样只使用文件,只需将文件名放在引号中并按回车键即可。所以:

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

这应该对你有用,它过去对我有用。它也适用于原始情况,您只需要在文件名之前返回即可。

欢迎来到 Unix StackExchange!

相关内容