在 Thunar 中,可以定义自定义操作。右键菜单中已经有“发送到桌面(创建链接)”选项。
我想要的是在 Thunar 中添加一个自定义操作,它可以在当前目录下创建文件或文件夹的链接,以便我可以立即将其复制到我想要的任何地方,而不是首先使用“发送至”选项已经可用。
这个怎么做?
我知道我可以使用“ln”命令在终端中执行此操作,但我无法弄清楚如何在上下文菜单命令中为创建的链接分配新名称。
Thunar 1.6.3 站在要链接到的文件夹/文件上(突出显示) 转到编辑(在主菜单中)并选择创建链接。
转到Edit - Configure custom actions
并尝试以下自定义操作。
ln -s %f 链接\到\ %n
适用于目录和文件
在这个线程的帮助下,我制作了一个 shell 脚本来粘贴剪贴板路径中的符号链接:
#! /bin/sh
XCLIP=`xclip -o -selection c`
if [ -f "$XCLIP" ] && [ -d "$1" ]; then
ln -s "$XCLIP" "$1"
fi
并将其调用到自定义操作中(/full/path/pastel.sh %f)。需要在自定义操作复选框中选择目录和“任何文件”。我不太确定 %f 在这种情况下是如何工作的……但它确实有效。所以现在我终于在 xfce 中有一个“粘贴链接”命令。
您可以使用thunar-plugins
python 包。它允许您通过文件对话框选择如何命名以及将所选文件或目录的新链接放置在何处。
它还安装了一个Checksums
动作和一个Plugins
管理器来管理使用它的插件。如果您愿意,您可以禁用两者。
#!/bin/bash
# 'paste links' custom action for thunar
# + process multiple files
# + support non-ascii file names
# custom action settings
# + command like `~/bin/_paste_links %f`
# + appearance condition: directories
# require: xclip
# no license + no warranty
o="$1"
[ -z "$o" ] && o=./ # default target dir = $PWD
[ ! -d "$o" ] && exit 1
while read i; do
if [[ "${i:0:1}" != '/' ]] \
&& [[ "${i:0:8}" = 'file:///' ]]
then
# decode path
i="${i:7}" # remove 'file://' prefix
i=$(echo -e "${i//%/\\x}") # urldecode
fi
[ ! -e "$i" ] && continue # file exists?
# -r = create relative link
ln -v -s -r "$i" "$o" # create link
done < <(xclip -o -se c; echo) # process substitution