我无法创建别名来更改目录和列出内容

我无法创建别名来更改目录和列出内容

我知道存在之前关于这个主题的问题。但是版主删除了我在这些帖子中的问题,因此我在这里问同样的问题。

在我的.bashrc我尝试:

alias cl='$HOME/.cFolder.sh'

其内容.cFolder.sh为:

#!/bin/bash

cFolder() {
    cd $1 && pwd && ls;
}

cFolder $1

当我执行新别名时,我得到:

 乔纳森 〜 $ cl Documentos/myScripts/
/home/jonathan/Documentos/myScripts

arranque-fallido.log firstInstall.sh makeAllPacks.sh ORIGINAL-installPegaso.sh RestoreBackup.sh startInitialConfig.sh
配置 USB 安装.sh 修复数据库.sh makeInstallationPack.sh README.md 恢复数据.sh testZenity.sh
downloadDebs.sh installAppPack.sh myScripts-Functions.sh recoverySystem.sh setNetwork.sh updateWeb.sh
 乔纳森 〜 

文件列表是正确的。但它不会改变我的实际文件夹。 .cFolder.sh脚本在他自己的空间中运行。

选项:

alias cl='cFolder() { cd $1 && pwd && ls; }'

对我不起作用。我怎样才能解决这个问题?

答案1

您的第一次尝试创建一个别名来运行更改目录的 shell 脚本。只是,正如许多地方所解释的,您无法从子 shell 更改当前 shell 的目录。所以这是行不通的。

第二次尝试创建一个定义函数的别名。它不运行它,所以这几乎肯定不是您想要的。

删除您创建的别名,并将其放入您的.bashrc

cFolder() { cd "$1" || return; pwd; ls; }

下次启动 shell 时,您将有一个名为 的新“命令” cFolder。不需要别名。不需要单独的脚本。

相关内容