30行代码即可保存剪贴板历史

30行代码即可保存剪贴板历史

This article is also available in: English.

   封面来自 Luba Ertel

在日常工作或生活中,复制粘贴的使用率很高。有时你突然需要之前复制的内容,如果有历史记录可以阅读和搜索,那将非常方便。


图片来源

一个简单的 shell 脚本就可以做到这一点!

当脚本在后台运行时,它每 2 秒读取一次剪贴板,比较本地保存的记录内容,如果尚未保存,则将当前剪贴板内容附加到文件末尾。

文件以日期命名(可以在以下脚本中轻松修改,请参阅 OUTPUT_FILE),以便于存储和归档。

实现

新建一个 clipboard.sh 脚本文件

clipboard.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/bash

DATE=$(date +%Y-%m-%d)
OUTPUT_FILE=~/Documents/$DATE.txt

if [ ! -f "$OUTPUT_FILE" ]; then
touch "$OUTPUT_FILE"
fi

while true; do
CURRENT_DATE=$(date +%Y-%m-%d)

if [ "$DATE" != "$CURRENT_DATE" ]; then
DATE=$CURRENT_DATE
OUTPUT_FILE=~/Documents/$DATE.txt
fi

if [ ! -f "$OUTPUT_FILE" ]; then
touch "$OUTPUT_FILE"
fi

CLIPBOARD_CONTENT=$(pbpaste)

if ! grep -Fxq "$CLIPBOARD_CONTENT" "$OUTPUT_FILE"; then
echo -e "$CLIPBOARD_CONTENT\n" >>"$OUTPUT_FILE"
fi

sleep 2
done

clipboard.sh 赋予可执行权限

1
chmod +x clipboard.sh

运行

1
./clipboard.sh

查看

可以使用 Shell 或者是 编辑器(例如 VS Code)查看脚本保存的文档内容。

tail
1
tail -f ~/Documents/2024-09-03.txt

相关软件推荐

市面上已经有很好用的剪贴板历史插件了。

Raycast

PasteNow

PasteNow 付费版本支持 iCloud 同步,对于跨设备查阅历史比较友好。

30行代码即可保存剪贴板历史

https://cn.thelynan.com/clipboard-history/

作者

Lynan

发布于

2024-09-03

许可协议

评论