【问题标题】:Linux console equivalent to gui copy/paste file/directory scenarioLinux 控制台等价于 gui 复制/粘贴文件/目录方案
【发布时间】:2019-02-13 08:05:10
【问题描述】:

如何像在 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变量并展开它,但这不是没有麻烦的解决方案。

有没有一些简单的、通用的、只有键盘的、使用起来不尴尬的等价物?

【问题讨论】:

    标签: linux console command-line-interface copy-paste


    【解决方案1】:

    我也向超级用户提出了同样的问题,我收到的答案对我来说已经足够好了。

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

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

    #!/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

    【讨论】:

      【解决方案2】:

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

      这应该可以按预期工作。 用法:脚本 [from] [to]

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

      【讨论】:

        【解决方案3】:

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

        另一个选项:利用 shell 选项卡完成。您仍然需要输入文件名,但不是全部。

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

        【讨论】:

        • 我想只使用键盘和纯控制台而不需要额外的管理器(我想在 *sh 历史记录中添加额外的条目)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-05-30
        • 1970-01-01
        • 2013-01-11
        • 2012-07-03
        • 2010-12-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多