我有一些文件,有些莫名其妙,但由于情有可原,请在文件名的前面加上一个“。”(句号和空格)。
我想写一个bash脚本来删除它,但我真的不知道从哪里开始。
我可以通过
检索所有受影响文件的列表find dir -name ".*"
但这就是我所知道的。任何人都可以帮助我吗?
答案 0 :(得分:2)
find dir -type f -regex ".*/[.] .*" -exec rename ". " "" {} \;
在dir中找到名称与正则表达式".*/[.] .*"
匹配的所有内容 - “任何东西,斜线,点,空格,任何东西”
对于每个找到的文件,执行:rename ". " "" filename
,在名为filename
的文件中将“。”更改为“”
答案 1 :(得分:2)
如果您的Perl脚本版本为rename
:
find dir -name '. *' -exec rename 's/^. //' {} \;
答案 2 :(得分:1)
for fn in \.\ *; do mv -T "$fn" "${fn:2}"; done
-T
是为了安全起见,即将“$ {fn:2}”视为文件而不是目录。
(在bash中测试)