如何在终端中两个非常不同的目录之间移动?

如何在终端中两个非常不同的目录之间移动?

当我使用 GUI 文件管理器移动文件时,我会在 2 个不同的窗口中导航到源目录和目标目录,然后进行拖放。有没有办法在 BASH 中执行此操作(将文件移动到目录,但能够导航到新目录,而不需要立即知道完整路径以放入参数中)

我知道如何使用 mv 和 cp 之类的命令,但这两个命令都需要一个完整路径作为参数,并且我希望能够独立于导航到源文件导航到新目的地……如果这有意义的话

答案1

我不确定我是否理解了,但你需要一个控制台文件管理器,这样你就可以在两个面板中浏览你的文件夹。你可以尝试午夜指挥官

使用以下命令安装:

sudo apt-get install mc

答案2

有两个命令可让您轻松地在目录之间来回移动:

pushd
popd

例如,使用 cd 导航到第一个目录:

cd /home/aperson/more/path/to/a/very/long/and/annoying/to/type/

然后使用 pushd 移动到另一个目录:

pushd /home/aperson/more/path/to/a/different/very/long/and/annoying/to/type/

现在当您popd再次拨打电话时,您将返回到第一个目录。

虽然这只是有助于导航,但您仍然需要单独执行mv或操作cp

根据您需要执行的操作量,可能值得将您的路径分配给变量,这样您就不必输入完整的路径:

DIR1="/home/aperson/a/very/long/and/annoying/to/type/"
DIR2="/home/aperson/a/different/very/long/and/annoying/to/type/"

现在您可以使用$DIR1$DIR2引用目录,即

cp somestuff.stuff $DIR1
cd $DIR1
mv somestuff.stuff $DIR2
cd $DIR2

答案3

这不完全是导航,但我猜您正在寻找的是 TAB 自动完成。

这将允许您获取任何目录的完整部分而无需了解它。

这里有一个很棒的教程

答案4

您可以使用 ubuntu 终端自带的选项卡功能 ( ctrl + shift + t)。这样,您就可以使用cdls命令在第二个选项卡中搜索目标目录。然后,一旦进入所需目录,您就可以使用命令(打印工作目录) 获取该目录的完整路径。获得该路径后,将路径复制并粘贴到您正在执行或命令pwd的第一个终端选项卡上。cpmv

在此处输入图片描述

如果您不熟悉cdls,这里有一个介绍一些基本 bash 命令的很棒的小教程。

命令行速成课程

我希望这对你有用。

相关内容