无法在 Linux 上删除文件名中的逗号

kut*_*lus 1 linux filenames rename

我在终端文件夹中有名为“data”的文件夹。data 中的某些文件名中包含“,”。我可以通过以下方式列出它们

$ cd data
$ ls -i |grep -E '\,'
Run Code Online (Sandbox Code Playgroud)

但我不知道如何从这些文件名中删除“,”。根据我的研究,我尝试了类似的方法grep -E '\,' | sed ',',但没有成功。如果我无法从文件文件名中删除逗号,我愿意删除这些文件,但我无法在终端文件夹上或使用 rm 的命令行删除它们(它说没有这样的文件或目录)。

Jef*_*ler 5

使用 bash shell,您可以循环遍历所有包含逗号的文件名并重命名它们以删除所有逗号:

for f in *,*; do mv -- "$f" "${f//,/}"; done
Run Code Online (Sandbox Code Playgroud)

通过示例运行:

$ touch foo,bar a,b,c,d
$ ls
a,b,c,d  foo,bar
Run Code Online (Sandbox Code Playgroud)

结果是:

$ for f in *,*; do mv -- "$f" "${f//,/}"; done
$ ls
abcd  foobar
Run Code Online (Sandbox Code Playgroud)

这将破坏任何已存在的目标文件名。