[Bash Tips] 如何在一个命令中使用 cd 和 ls

每当我 cd 进一个目录,接下来就是我自发地 do – 使用列出该目录的内容 ls 命令。 我不知道你们是否都这样做,但我想你们中的一些人可能有这个习惯。 如果我们将 cd 和 ls 的功能结合在一个命令中会更好,不是吗? 这个简短的指南解释了如何在 Linux 中 cd 进入目录时自动列出目录内容。

如何在 Bash 中的一个命令中使用 cd 和 ls

请注意,我不是在谈论单行命令。 例如,您可以使用如下所示的单行命令执行 cd 和 ls。

$ cd path-to-dir && ls

或者,

$ cd path-to-dir ; ls

是的,它确实有效! 但这不是本指南的范围。 我们将在一个简单的帮助下完成 BASH 函数. 这个技巧适用于所有支持 BASH 的 Linux 和类 Unix 发行版。

打开你的 ~/.bashrc 文件在您最喜欢的编辑器中:

$ nano ~/.bashrc

在末尾添加以下行:

cdls() {         local dir="$1"         local dir="${dir:=$HOME}"         if [[ -d "$dir" ]]; then                 cd "$dir" >/dev/null; ls --color=auto         else                 echo "bash: cdls: $dir: Directory not found"         fi }
在一个命令中使用 cd 和 ls 的 BASH 函数

在这里,我使用函数名作为 cdls () 为了方便记忆! 您可以随意命名此函数。 也换 ls --color=auto 用你自己的参数。 Save 和 close 文件。

运行以下命令使更改生效。

$ source ~/.bashrc

现在,只要您像下面那样 cd 进入它,它就会自动列出目录内容。

例子:

$ cdls /var/log/ alternatives.log  btmp                   dpkg.log   kern.log   syslog               wtmp apt               cloud-init.log         faillog    landscape  syslog.1 auth.log          cloud-init-output.log  installer  lastlog    tallylog bootstrap.log     dist-upgrade           journal    lxd        unattended-upgrades [email protected]:/var/log$ pwd /var/log
cd 和 ls 在一个命令中 n Bash

您还可以在您的 ~/.bashrc 文件。

cdls() {         cd "[email protected]" && ls; }

来源 ~/.bashrc 文件以使更改生效。 也不要同时使用同名的两个函数。 要么使用一种功能,要么使用不同的名称(例如 cdlscl) 对于每个功能。

在我知道这个技巧之前,我通常会这样做:

$ cd /var/log/

接着;

$ ls

或者,

$ cd /var/log/ && ls

不再! 现在,只要我 cd 进入它,我就可以列出任何目录内容。 当您经常使用大量目录时,这很方便。

一个缺点 这个技巧的关键是当 cd 进入包含成百上千个文件的目录时,您将不得不等待几秒钟到几分钟。 在这种情况下,使用正常的 cd 命令。

建议阅读:

  • 在 Linux 中重命名文件而不输入两次全名
  • Bash 提示 – 如何在一个命令中执行 cp 或 mv 和 cd
  • 不使用 ls 命令列出目录内容的不同方法
  • 用于提取各种类型文件档案的 Bash 函数

BASHBash 函数Bash 技巧Bash 技巧cd 命令CLI命令行Linux 命令Linux 技巧ls 命令Shell