我试图定义一个别名来帮助我 cd 到最近创建的目录,并且我在 .bashrc 中使用以下内容:
alias cdlatest="latestdir=$(ls -td -- */|head -n 1); cd $latestdir"
但这个别名只能使用一次。如果我更改为新目录,它仍会尝试 cd 到最后一个目录。看来是因为该变量$(ls -td -- */|head -n 1)
从一开始就只计算一次。如何解决这个问题?
答案1
将别名定义周围的双引号更改为单引号,然后就可以了。
alias cdlatest='latestdir=$(ls -td -- */|head -n 1); cd $latestdir'
不过,我建议进行一些精简:
alias cdlatest='cd "$(\ls -td -- */|head -n 1)"'
我们去掉中间变量“$latestdir”,引用命令评估的结果 $(...),并使用 ls 的非别名形式。
但您需要记住,这不会处理名称中带有换行符的文件。