如何更改gnome-screenshot截图的默认名称?

Gnome-screenshot 3.1.2使用像这样的文件名

截图2011-07-31 12:13:04.png

让它很容易看出它被采取。

问题是它使用冒号(:)字符 – 使得无法从Windows访问这样的图像。

考虑到我拍摄了大部分截图,因此我可以将它们发送给Windows用户,这会导致一些问题。

有没有办法更改屏幕截图工具用来将“:”替换为“。”的默认名称。 要么 ”,” ?

它实际上不可能轻易地改变它,也许你可以帮助这个错误报告 。

(好奇,查看源代码 。目前,相关行是134 )

更新 :该漏洞在2015-01-28上游修复 ,用破折号替换冒号,这有所帮助。 但不幸的是,他们没有把这个空间拿走。

有一种简单而又脏的方法可以重命名创建后立即拍摄的所有屏幕截图,但是您需要安装inotify-tools( apt-get install inotify-tools ),然后您可以运行此命令:

 while true; do inotifywait -e CREATE ~/Pictures && rename 's/\:/\./g' Pictures/Screenshot*.png; done; 

当这个命令运行时,每次在Pictures /中保存新的屏幕截图时,脚本将重命名包含:每个文件:替换: with .

(也许你想要更改目录,我不知道Gnome 3使用哪个目录)如果你真的喜欢它,你可以在每次gnome启动时在脚本中启动这个命令。

这里的解决方法是重命名文件,而不是安装其他软件并在屏幕截图工具中编写此代码。

您需要做的就是导航到目录并运行以下命令

 rename 's/\:/\-/g' *.png 

这将使用以当前目录中存在的.png结尾的所有文件名中的短划线替换所有冒号。

gnome-screenshot不允许为屏幕截图文件名设置全局默认值,但您可以使用-f选项在命令行上指定文件名。

我们可以使用它来编写一个小的bash脚本,它将取代原始的gnome-screenshot二进制文件,并使用正确的文件名参数执行原始文件。

请注意,您必须具有以下操作的root权限,因此请在每个命令前加上sudo或使用sudo -i打开root shell。

  1. 将原始gnome-screenshot二进制文件gnome-screenshot

     dpkg-divert --add --rename --divert /usr/bin/gnome-screenshot.real /usr/bin/gnome-screenshot 
  2. 在编辑器中打开/usr/bin/gnome-screenshot (你应该看到一个新的空文件):

     editor /usr/bin/gnome-screenshot 
  3. 将以下两行粘贴到编辑器中:

     #!/bin/bash gnome-screenshot.real -f "$HOME/Pictures/Screenshots/$(date +%F_%H-%M-%S).png" $@ 

    你可以在-f之后插入你喜欢的任何路径; 只需确保将其括在引号中并保留$@
    在此示例中,屏幕截图将与/home/yourusername/Pictures/Screenshots/2011-07-31_12-13-04.png文件名一起存储。 有关date +%…语法的详细信息,请参阅man date

  4. 保存文件并关闭编辑器(例如在Nano中使用Ctrl + X或在Vim中使用:wq )。

  5. 使新创建的脚本可执行:

     chmod a+x /usr/bin/gnome-screenshot 

Shutter是另一个截取屏幕截图的应用程序,允许您自定义文件名:您可以从Ubuntu软件中心安装它。

在Debian 8.6 KDE→系统设置→自定义快捷方式中,我设置了Trigger→PrtScn和Action→

 gnome-screenshot -p -f "$(date +%F_%H-%M-%S)_D.png" 

它工作正常。

如果:

  1. 你熟悉二进制编辑工具,比如bless (例如参见ubuntu包或者github ),
  2. 你知道C字符串格式修饰符,
  3. 你知道0x0"0"之间的区别,
  4. 并且你不介意乱用你选择的Linux发行版安装的二进制文件,

然后你可以修改gnome-screenshot使用的文件名。

二进制编辑gnome-screenshot ,你会发现两个格式字符串:

  1. %Y-%m-%d %H-%M-%S后跟空字节,
  2. Screenshot from %s.%s后跟空字节的Screenshot from %s.%s

在第二个格式字符串中,第一个%s是日期,第二个%s是文件扩展名。

例如,您可以在此处覆盖 %Y-%m-%d %H-%M-%S其中%F-%H%M%S后跟空字节, Screenshot from %s.%s by shot %s.%s后跟空字节:例如,屏幕截图将命名为"shot 2018-05-05_174857.png"

适应您的喜好。

有两个限制:

  1. 新的日期格式和新的文件名格式不得长于原始格式,
  2. 如果您安装新版本的gnome-screenshot ,例如更新系统时,您的自定义将被销毁。

警告:

  • 在Ubuntu 16.04 LTS上测试,您的里程可能会有所不同。
  • 这是一个hack ,而不是修改gnome-screenshot生成的默认名称的简洁方法:在继续之前进行备份
  • 发布时没有任何forms的保证。