![在目录名中查找并重命名正斜杠(Linux/OmniOS)?](https://linux22.com/image/1607987/%E5%9C%A8%E7%9B%AE%E5%BD%95%E5%90%8D%E4%B8%AD%E6%9F%A5%E6%89%BE%E5%B9%B6%E9%87%8D%E5%91%BD%E5%90%8D%E6%AD%A3%E6%96%9C%E6%9D%A0%EF%BC%88Linux%2FOmniOS%EF%BC%89%EF%BC%9F.png)
在工作的文件服务器上,我们有一些在 macOS 上创建的旧目录(以前位于 AFP 共享中),/
名称中包含 。我想用 替换/
,-
但很难做到这一点。此外,一些目录还包含 ,<space>
这让事情变得更加复杂。
带有正斜杠的示例目录:
Brief/Debrief
(在 Linux 命令行中显示Brief:Debrief
)Til/fra kunde
(在 Linux 命令行中显示Til:Fra kunder
)
我想将它们重命名为Brief-Debrief
和Til-Fra kunde
,即替换/
为-
我曾在 OmniOS 上尝试过find
,-exec mv …
但我没能得到正斜杠(尤其是当<space>
名称中也有时)。
我可以使用通过 NFS 访问共享的 Ubuntu VM,并且在那里我可以进行重命名等操作,但仍然存在问题。
关于如何解决这个问题有什么意见吗?
编辑:
根据@Kamil Maciorowski 的建议,我需要寻找的只是:
,然后就好了。
最终命令:
find . -name "*:*" -type d -execdir rename -n 's/:/-/g' "{}" \;
(-n
如果复制此内容,请删除标志,-n
=试运行)
答案1
根据@Kamil Maciorowski 的建议,我需要寻找的只是:
,然后就好了。
最终命令:
find . -name "*:*" -type d -execdir rename -n 's/:/-/g' "{}" \;
(-n
如果复制此内容,请删除标志,-n
=试运行)