繁体   English   中英

如何替换文件和目录名称中的 hash 模式(Linux)

[英]How to replace a hash pattern inside file and directory names (Linux)

我刚刚备份了我在Notion中的笔记,它们在笔记名称中使用哈希码以使它们明显独一无二。

例如,这可能是一个带有一些注释的注释文件夹:

Archive e74f698cb73b42c790d08999bdbe47e4
├── Note 1 cda63bef095a493f9847d516cf34fa5f.md
├── Note 2 dda63bef095a493f9847d516cf34fa5f.md

(有时还有一个用于表格的.csv文件)

我试图使用像[a-z0-9]{32}这样的正则表达式来替换模式,但是很难使它与s/一起使用:

find -type f -print0 | xargs -0 rename 's/[a-z0-9]{32}//g'

(我不确定我是否真的理解-print0-0的目的。)

上面的代码仅适用于文件,但我也尝试使用mv $f ${f:0:-34}之类的东西,尽管我也无法使其工作。 有没有办法让文件和文件夹都只用一行替换,而不用for s?

我已经在 StackOverflow 上尝试了许多其他关于此的答案,但到目前为止我发现的几乎所有答案要么只处理文件,要么将固定单词作为模式。

我想使用 Mass-Move 命令行工具 ( mmv ),但是 Arch Linux 没有官方发行版?

steeldriver在 Unix 和 Linux StackExchange 上创建了一个非常完整和彻底的答案 整个讨论原本应该都在这里。 但是这个问题在某个时候已经解决了,我不得不在那里重新提出。 当它回到这里时,我提醒了steeldriver ,但他显然既不感兴趣也不知道。 我会留下这个答案,直到他选择在这里复制粘贴或链接他自己的内容。

对于意外的交叉/复制粘贴发布,我们深表歉意。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM