Linux 控制台相当于 gui 复制/粘贴文件/目录方案



如何像在 gui 环境中那样简单地重新创建复制/粘贴功能?

我在 Linux 控制台中复制文件/目录的典型场景是:

cp source_path target_path
有时

路径是相对的,有时是绝对的,但我需要同时提供它们。它有效,但在某些情况下,我想从 gui 重新创建场景,即:

1. go to source directory
2. copy file/directory
3. go to target directory
4. paste file/directory

我想象类似的东西

cd source_directory_path
copy_to_stash source_name
cd target_directory_path
paste_from_stash [optional_new_target_name]

我知道有一个 xclip 应用程序,但文档说它复制文件的内容,而不是文件句柄。另外,我可以在复制文件时使用$OLDPWD变量并扩展它,但这不是一个没有麻烦的解决方案。

有没有一些简单,通用的,只有键盘,使用等效的不尴尬?

我也问过关于超级用户的相同问题,我收到的答案对我来说已经足够了。

简而言之:两个额外的脚本和临时变量来保存中间值。

下面是原始答案的代码和链接。

#!/bin/bash
# source me with one of:
# source [file]
# . [file]
# Initialize
sa_file=
sa(){
# Fuction to save a file in the current PWD
if [[ -e "$PWD/$1" ]]; then
    sa_file=$PWD/$1
    echo "Saved for later: $sa_file"
else
    echo "Error: file $PWD/$1 does not exist"
fi
}

pa(){
# Paste if file exists, to $1 if exists
if [[ -e "$sa_file" ]]; then
    if [[ $1 ]]; then
        cp -v "$sa_file" "$1"
    else
        cp -v "$sa_file" .
    fi
else
    echo "Error: file $sa_file does not exist, could not copy"
fi
}

https://superuser.com/a/1405953/614464

在我看来,

您唯一的选择是编写一个脚本来完成所有这些步骤。您可以通过将文件复制到/tmp 目录,然后再从该目录复制来轻松实现剪贴板功能。

这应该按预期工作。用法:脚本 [从] [到]

filename=$(basename "$0")
tmpfile=/tmp/$filename.$RANDOM
cd $(dirname "$0")
cp $tmpfile $filename
cd $(dirname "$1")
cp $tmpfile $(basename "$1")

一种选择:您可以使用鼠标复制粘贴文件名,使用终端模拟器(例如 Konsole 或 GNOME 终端(中的复制粘贴功能,但这:1( 需要 GUI,因为终端仿真器软件在 GUI 中运行; 2( 嗯,需要鼠标。

另一种选择:利用外壳选项卡补全。您仍然需要键入文件名,但不是全部。

第三个选项,这更接近您在 GUI 文件资源管理器中的工作方式:使用基于 TUI 的文件资源管理器,例如双窗格样式的午夜指挥官。您可以使用箭头键(如果您打开类似 Lynx 的运动设置,非常推荐(快速导航目录树。然后使用 Insert+-* 键选择文件,然后将文件从一个窗格复制/移动到另一个窗格。非常方便。事实上,我花在 CLI 上的时间有一半时间是在 MC 上度过的。

最新更新