跳到主要内容

你有把文件名重命名为唯一ID的需求吗?

· 阅读需 2 分钟

比如截图软件截图的结果为:xxx200102933.png 等等。有时候我们需要将文件名重命名为唯一ID,如 7lvJzJS7TwkeU2hWcxLCB.md

方法有很多,自己生成个uuid,然后重命名文件即可。

利用Mac上Alfred中的workflow,这个操作可以变得很简单。

首先,先装个node.js环境,它上面有很多生成唯一ID的插件,比如 uuidnanoid

    へ     /|
  /\7   ∠_/
  / │   / /
 │ Z _,< /   /`
 │     ヽ   /  〉
  Y     `  /  /
 イ● 、 ●  ⊂⊃〈  /
 ()  v    | \〈
  >ー 、_  ィ  │ //
  / へ   / ノ<| \\
  ヽ_ノ  (_/  │//
  7       |
  >―r ̄ ̄`ー―_- Hello World! Good good study ,day day up!
➜ ~ uuid
8478f01b-3fbb-4791-9033-0e3f9587f1a8
➜ ~ nanoid
oDbTo4uDx1Qc-pt00_V0y

新建个 workflow,采用关键字uid触发

主要是中间的脚本内容如下:

脚本内容意思是:获取选中的文件,截取文件的名称,然后获取个唯一ID,给文件重命名。

CurrentSelectPath=$(osascript <<EOF
tell application "Finder"
set theItems to selection
set filePath to (POSIX path of (the selection as alias))
end tell
set q to filePath
return q
EOF
)
uid=`nanoid | sed 's/-//g'`
oldpath=$CurrentSelectPath
dir=$(dirname $CurrentSelectPath)
suffix=${oldpath##*.}
newpath="$dir/$uid.$suffix"
mv $oldpath $newpath
echo $uid

如果没有选中文件的话,那么会把唯一ID复制到剪贴板上,如果选中了文件则会重命名文件。两种情况都会把唯一ID给出结果通知。

如下左侧是通知设置,右侧是剪贴板设置。

那么最终的效果是: