一个命令即可实现 ls 和 cat 功能?

一个命令即可实现 ls 和 cat 功能?

好的伙计们,这是一个实验性问题警告!

我在控制台上快速操作时经常会混淆catls。不是因为我忘记了它们的含义。只是因为我输入时没有深入思考命令 - 命令会自动出现。我相信每个人都知道我在试图解释什么:如果你的任务是列出一个文本文件或一个目录,你不必思考要输入什么。

现在,为什么要使用两个不同的命令?如果有一个命令,如果目标是目录,则列出目录;如果目标是文件,则列出文件的内容,那么事情会更流畅。

有这样的命令吗?

我知道有些编辑器(例如vim)具有列出目录的功能。但这不是我想要的,因为我想留在控制台上。其次,通过目录vim列表打开文件后,没有办法返回 - 至少我不知道。

如果没有现成的解决方案,我会尝试为和制作一个小型 bash 脚本(包装器)catls但这不是首选,因为在使用许多不同的系统时,必须将其放置在每个系统上……

答案1

简单地说这个功能就是你的.bashrc

catls()
{
  [[ -f "$1" ]] && cat "$1" || ls "$1";
}

它将cat常规文件但调用ls目录

答案2

讨厌 necrobump 并且无法发表评论;但是当没有传递任何内容时进行修复。

catls() { [[ -f "$1" ]] && cat "$1" || ls "${1:-.}"; }

相关内容