好的伙计们,这是一个实验性问题警告!
我在控制台上快速操作时经常会混淆cat
和ls
。不是因为我忘记了它们的含义。只是因为我输入时没有深入思考命令 - 命令会自动出现。我相信每个人都知道我在试图解释什么:如果你的任务是列出一个文本文件或一个目录,你不必思考要输入什么。
现在,为什么要使用两个不同的命令?如果有一个命令,如果目标是目录,则列出目录;如果目标是文件,则列出文件的内容,那么事情会更流畅。
有这样的命令吗?
我知道有些编辑器(例如vim
)具有列出目录的功能。但这不是我想要的,因为我想留在控制台上。其次,通过目录vim
列表打开文件后,没有办法返回 - 至少我不知道。
如果没有现成的解决方案,我会尝试为和制作一个小型 bash 脚本(包装器)cat
。ls
但这不是首选,因为在使用许多不同的系统时,必须将其放置在每个系统上……
答案1
简单地说这个功能就是你的.bashrc
:
catls()
{
[[ -f "$1" ]] && cat "$1" || ls "$1";
}
它将cat
常规文件但调用ls
目录
答案2
讨厌 necrobump 并且无法发表评论;但是当没有传递任何内容时进行修复。
catls() { [[ -f "$1" ]] && cat "$1" || ls "${1:-.}"; }