Ctrl在 MC 中,我可以按+将当前文件的名称从文件列表复制到控制台Enter。
假设我想要将多个文件复制到控制台。示例:想要创建*.zip
多个文件:
zip new_zip.zip a.txt b.txt c.txt 231202fkfo3f.txt
我可以使用 Insert (或等效的Ctrl+ t) 选择多个文件。我希望在此之后使用一个快捷方式,让所有选定的文件名直接进入控制台。类似于Ctrl+ Enter。
有哪些方法可以实现?
答案1
如果您按下Ctrl+ ,它会将您用+或x t标记的所有文件的名称粘贴到命令行。CtrltInsert
答案2
用户菜单中有一个类似的内置解决方案F2。它被称为“对标记文件执行某些操作”,并逐个对文件运行给定的命令。
可以向此菜单添加新命令。这是一个有点棘手的解决方案,但对我来说很有效。(需要 Subshell 支持。)
用户菜单配置文件通常位于:
/etc/mc/mc.menu
我的解决方案基于“对标记文件执行某些操作”。我复制了它的几行并进行了如下修改:
+ t t
p Put selected files to history
set %t
while [ -n "$1" ]; do
STR="$STR \\\"$1\\\""
shift
done
bash -ic "history -s $STR" > /dev/null
第一行表示只有选择了多个文件时才显示。第二行包含标题和用户菜单内的快捷方式 ( p)。之后是一个将选定文件名添加到历史记录的 shell 脚本。
添加这几行mc.menu
并注意制表符。第一行和第二行没有制表符,并且脚本是用制表符制表的。否则mc
将无法解析它。
之后,您应该选择一些文件并按下F2。按下新添加的“将选定文件放入历史记录”。现在它们已添加到历史记录中,但需要重新读取才能使用。按下Ctrl+ O,然后您应该history -r
在命令行中键入。最后,您将通过按下 键找到选定的文件名UP。
也可以使用替代解决方案。也许更简单的方法是将字符串直接打印到终端,然后复制粘贴即可。以下脚本实现了这一点:
+ t t
p Print selected files to subshell
set %t
while [ -n "$1" ]; do
STR="$STR \"$1\""
shift
done
echo "$STR"