在Linux上的名称中查找带有非法Windows字符的文件

我在Linux机器上有一个项目,其中包含带有在Windows中被认为是非法/保留的字符的文件(http://msdn.microsoft.com/zh-

cn/library/aa365247%28VS.85%29.aspx)。该项目在多个文件夹中有10,000多个文件,我将确定这些文件的路径。

我可以find . -name "*\?*"为每个非法/保留字符,但是有一种更简单的方法来查找包含以下内容的所有文件< > : " / \ | ?

*

确定后,我想从每个文件中删除所有这些字符。

回答:

这种单线查找应该为您工作:

find . -name "*[<>:\\|?*]*" -exec bash -c 'x="{}"; y="$(sed "s/[<>:\\|?*]\+/-/g" <<< "$x")" && mv "$x" "$y" ' \;

以上是 在Linux上的名称中查找带有非法Windows字符的文件 的全部内容, 来源链接: utcz.com/qa/403502.html

回到顶部