har*_*ski 0 linux bash shell bash-alias macos
在我的 中~/.shortcuts
,我有一些常用目录的符号链接。
在.bashrc
(OS X)中,我这样做:
ls -1 ~/.shortcuts | xargs -I {} alias {}="'cd -P ~/.shortcuts/{}'"
当我alias
在终端中运行时,输出显示新添加的别名,但没有一个别名有效。为什么?
我有一些别名,如alias ll='ls -l'
在.bash_aliases
. 这样. ~/.bash_aliases
在.bashrc
负载我的自定义别名得很清楚。但是,当我将xargs -t
输出重定向到 tmp 文件并在 bashrc 中获取它(就像我的 source 一样.bash_aliases
)时,它不起作用。
我究竟做错了什么?
它不起作用,因为它alias
在一个子shell 中运行,该子shell 之后立即退出。它永远不会影响启动管道的外壳。
你应该尝试这样的事情:
for short in ~/.shortcuts/* ; do
alias $(basename $short)="cd -P $short"
done
Run Code Online (Sandbox Code Playgroud)
这假设您在该文件夹中没有名称中包含有趣字符(如空格)的文件。
(一般来说,不要解析 的输出ls
,使用 shell 的 globbing 函数。)
归档时间: |
|
查看次数: |
91 次 |
最近记录: |