每当我 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 }
在这里,我使用函数名作为 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
您还可以在您的 ~/.bashrc
文件。
cdls() { cd "[email protected]" && ls; }
来源 ~/.bashrc
文件以使更改生效。 也不要同时使用同名的两个函数。 要么使用一种功能,要么使用不同的名称(例如 cdls
和 cl
) 对于每个功能。
在我知道这个技巧之前,我通常会这样做:
$ 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