前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用shell实现一个cdls命令

用shell实现一个cdls命令

作者头像
入门笔记
发布2022-06-02 18:28:57
4570
发布2022-06-02 18:28:57
举报
文章被收录于专栏:入门小站入门小站

每当我cd进入一个目录时,我会立即做的下一件事- 使用ls命令列出该目录的内容。我不知道你们是否都这样做,但我想你们中的一些人可能有这个习惯。将 cd 和 ls 的功能结合在一个命令。

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

你可以使用如下所示的单行命令执行 cd 和 ls。

代码语言:javascript
复制
$ cd path-to-dir && ls

或者

代码语言:javascript
复制
$ cd path-to-dir ; ls

这样也是可以的。但是我们将借助一个简单的BASH函数来完成。这个技巧适用于所有支持 BASH 的 Linux 和类 Unix 发行版。

~/.bashrc在你喜欢的编辑器中打开你的文件$ vim ~/.bashrc

在末尾添加以下行:

代码语言:javascript
复制
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用你自己的替换参数。保存并关闭文件。

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

$ source ~/.bashrc

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

代码语言:javascript
复制
$ 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
sk@ubuntuserver:/var/log$ `pwd`
`/var/log`

cd 和 ls 在一个命令中 n Bash

你还可以在~/.bashrc文件中添加以下更简单的函数。

代码语言:javascript
复制
cdls(){
    cd "$@" && ls;
}

source ~/.bashrc让命令生效。也不要同时使用同名的两个函数。要么使用一个函数,要么为每个函数使用不同的名称(例如cdlscl)。

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

$ cd /var/log/接着$ ls或者$ cd /var/log/ && ls

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-01-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 入门小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何在 Bash 中的一个命令中使用 cd 和 ls
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档