【问题标题】:bash functions. help me understandbash 函数。帮我理解
【发布时间】:2017-08-10 17:42:02
【问题描述】:

尝试设置一个快捷方式,让我可以 cd 进入一个目录并一次性列出其中的文件

这是我到目前为止所得到的。我的知识有限,这几乎只是从网上复制粘贴,不知道我在做什么,但在学习过程中:

cdl () {
    cd $1
    ls . $1
}

它做了我想要的,但产生了一个错误:

ls: cannot access colorschemes/: No such file or directory
.:

如何摆脱错误信息?

【问题讨论】:

  • 提示:当你 cd 进入一个名为 dirname 的目录时,ls dirname 仍然有意义吗?
  • 如果我从第 3 行取出 .,则会收到此错误“ls: cannot access colourschemes/: No such file or directory”并且根本不列出文件跨度>

标签: bash function ls cd


【解决方案1】:

如果你已经CD到了一个目录,那么就不需要运行ls -lth。目录名就不用再提了。

function cdl () {
   cd "$1"
   ls -lth
}

如果您还没有这样做,我建议将其放入您的 .bash_profile 中。

问候!

【讨论】:

  • 真的应该引用"$1"
  • 不错的一个。谢谢你。完全符合我的要求(减去 -lth 标志)。你能解释一下为什么这行得通而我的不行吗?和cdl之前的function有关系吗?
  • @m147 酷。很高兴听到这个消息。
  • 你能解释一下为什么这行得通而我的不行吗?和cdl之前的函数有关系吗?
  • @m147 您试图同时列出colorschemes/colorschemes/colorschemes/。后者是无效目录,导致错误。它与您的功能没有任何关系。如果您打开终端,运行cd /,然后运行cd tmp 以更改为/tmp,然后运行ls tmp 以尝试在/tmp 中列出目录tmp,您将收到相同的错误。列出当前目录的正确方法是lsls .,而不是ls relativeNameOfCurrentDir
猜你喜欢
  • 1970-01-01
  • 2012-01-18
  • 2014-10-13
  • 1970-01-01
  • 1970-01-01
  • 2011-01-13
  • 2021-01-13
  • 1970-01-01
  • 2023-03-03
相关资源
最近更新 更多