如何复制和粘贴文件?

如何复制和粘贴文件?

我想要复制粘贴一个文件,文件名为mkoctfile.m
文件路径为:

/usr/share/octave/3.2.4/m/miscellaneous/mkoctfile.m

我想将其粘贴到以下路径

/usr/bin/mkoctfile-3.2.4

我使用以下命令创建了目录:

sudo su mkdir -p /usr/bin/mkoctfile-3.2.4

但我不知道如何mkoctfile.m在这个路径中复制和粘贴。

请告诉我必须使用什么命令。

答案1

使用cp命令复制文件,语法如下cp sourcefile destinationfile。使用mv命令移动文件,基本上就是将其剪切并粘贴到其他地方。

您在示例中使用的确切语法是:

sudo cp /usr/bin/octave/3.2.4/m/miscellaneous/mkoctfile.m /usr/bin/mkoctfile-3.2.4

有关cpmv命令的更多信息,您可以运行:

man cp

或者

man mv

查看手册页

答案2

您可以像在 GUI 中一样直观地在 CLI 中进行剪切、复制和粘贴,如下所示:

  • cd到包含要复制或剪切的文件的文件夹。
  • copy file1 file2 folder1 folder2或者cut file1 folder1
  • 关闭当前终端。
  • 打开另一个终端。
  • cd到您想要粘贴它们的文件夹。
  • paste

为此,请确保您已安装xcliprealpath。然后,将这些函数附加到您的~/.bashrc文件:

copy() {
    # if the number of arguments equals 0
    if [ $# -eq 0 ]
    then
        # if there are no arguments, save the folder you are currently in to the clipboard
        pwd | xclip
    else
        # save the number of argument/path to `~/.numToCopy` file.
        echo $# > ~/.numToCopy

        # save all paths to clipboard
        # https://stackoverflow.com/q/5265702/9157799#comment128297633_5265775
        realpath -s "$@" | xclip
    fi

    # mark that you want to do a copy operation
    echo "copy" > ~/.copyOrCut
}

cut() {
    # use the previous function to save the paths to clipboard
    copy "$@"

    # but mark it as a cut operation
    echo "cut" > ~/.copyOrCut
}

paste() {
    # for every path
    for ((i=1; i <= $(cat ~/.numToCopy); i++))
    do
        # get the nth path
        pathToCopy="$(xclip -o | head -$i | tail -1)"

        if [ -d "$pathToCopy" ] # If it's a directory
        then
            cp -r "$pathToCopy" .
        else
            cp "$pathToCopy" .
        fi

        # if it was marked as a cut operation
        if [ $(cat ~/.copyOrCut) = "cut" ]
        then
            # delete the original file
            rm -r "$pathToCopy"
        fi
    done
}

如果你不知道.bashrc文件是,并且从未修改过它,只需打开文件资源管理器,转到主页,按 Ctrl+H(显示隐藏文件),搜索.bashrc并使用 gedit 等文本编辑器打开它。

笔记

通过使用上述脚本,您可以覆盖这些命令的默认功能:

  • copy是 PostgreSQL 的保留命令。
  • cutpaste是保留的 Linux 命令。

如果您使用其中一个命令的默认功能,只需相应地修改脚本函数名称即可。例如,使用p而不是paste

答案3

转到要复制文件的目录,即 /usr/bin/octave/3.2.4/m/miscellaneous

cd /usr/bin/octave/3.2.4/m/miscellaneous

然后输入

`cp mkoctfile.m ../../../mkoctfile-3.2.4`

../../../意味着您将返回到 bin 文件夹并输入要将文件复制到其中的任何目录。

答案4

基于@M Imam Pratama 的想法(现在复制/剪切,稍后粘贴)的一个有趣的解决方案。

考虑使用xclip-copyfile、xclip-cutfile 和 xclip-pastefile

$ xclip-copyfile file1
$ xclip-cutfile file1
$ xclip-pastefile file1

您还可以复制整个树结构。

警告: xclip-cutfile立即删除该文件,而不是等到您粘贴它。

相关内容