每当我
cd
进入一个目录时,我会立即做的下一件事- 使用ls
命令列出该目录的内容。我不知道你们是否都这样做,但我想你们中的一些人可能有这个习惯。将 cd 和 ls 的功能结合在一个命令。
你可以使用如下所示的单行命令执行 cd 和 ls。
$ cd path-to-dir && ls
或者
$ cd path-to-dir ; ls
这样也是可以的。但是我们将借助一个简单的BASH函数来完成。这个技巧适用于所有支持 BASH 的 Linux 和类 Unix 发行版。
~/.bashrc
在你喜欢的编辑器中打开你的文件$ vim ~/.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
用你自己的替换参数。保存并关闭文件。运行以下命令使更改生效。
$ 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
sk@ubuntuserver:/var/log$ `pwd`
`/var/log`
cd 和 ls 在一个命令中 n Bash
你还可以在
~/.bashrc
文件中添加以下更简单的函数。
cdls(){
cd "$@" && ls;
}
source ~/.bashrc
让命令生效。也不要同时使用同名的两个函数。要么使用一个函数,要么为每个函数使用不同的名称(例如cdls
和cl
)。在我知道这个技巧之前,我通常会这样做:
$ cd /var/log/
接着$ ls
或者$ cd /var/log/ && ls
只要我cd进入它,我就可以列出任何目录内容。当你经常使用大量目录时,这很方便。