删除文件夹名称中包含^M的文件夹。

3

在Linux系统中,一个有问题的脚本会在文件夹名称结尾处添加字符“^M”。使用“ls -al”命令可以将 "^M" 移动到问号所在位置。

但是,输入问号进行搜索无法起到与 "^M" 相同的作用。

如何删除这些文件夹呢?


3
如果目录为空,rmdir *$'\r' 命令将有效。 - undefined
1个回答

6
你需要使用C风格的字符串,在其中使用反斜杠转义符\r来指定^M或回车字符。
C风格的字符串由$和单引号组成:$'a c-style string' 找出出错的目录:
find . -type d -name $'*\r'

列出已经损坏的目录名称:
ls -d *$'\r'

通过删除尾随的CR(回车符),将错误的目录重命名。

find . -type d -name $'*\r' -execdir sh -c $'for d; do mv -- "$d" "${d%\r}"; done' _ {} +

删除当前目录中的命名错误的目录及其内容:

rm -r -- *$'\r'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接