gui复制/粘贴文件/目录场景等价的Linux控制台

分享于 

3分钟阅读

电脑

 

问题:

如何简单地重新创建复制/粘贴功能,如在?

在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]



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

只有一些简单,一般的键盘,不笨拙的使用等价的? 我不想使用其他管理器,如 ranger,午夜指挥官,只有 cli。


回答 1:

你应该能够用一些基本的函数,和 shell 变量得到绝对路径,保存你指定的名字,然后在任何时候把你指定的名字保存到这里。 以下是 bash ( dash/sh可能只需要使用 test 或者 [ 而不是 [[ )的两个示例:


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


}



我使用名称 sa 保存,而 pa 用于粘贴[,因为 typing = 更好? ],但是命名它们会工作,如 copy_to_stash。


回答 2:

你不能用 xclip。 从 xclip 手册中:

从标准中读取或者从一个或者多个文件读取,

因此,不必复制文件的内容,也可以从stdin中复制文本:


cd source_directory_path


realpath some_file | xclip # Copy the path to a file


cd target_directory_path


cp"$(xclip -o)". # Copy ("paste") the file to the current directory





文件  gui  CONS  控制台  cop  拷贝  
相关文章