我有一个.bash_profile脚本,我无法使用以下内容 别名lsls ='ls -l |排序-n +4'
当我输入别名lsls时 它会排序,但然后发布此错误消息 “-bash:+4:找不到命令” 如何让别名与“+4”一起使用?
在类型ls -l |时有效在命令行中排序-n +4
我在OS X 10.4中
感谢您的帮助
答案 0 :(得分:3)
bash-4.0$ ls -l | sort -n +4
sort: open failed: +4: No such file or directory
您需要ls -l | sort -n -k 5
,gnu sort与bsd sort
alias lsls='ls -l | sort -n -k 5'
编辑:更新以反映从基于0的索引到基于1的索引的变化,感谢Matthew。
答案 1 :(得分:1)
alias lsls='ls -l | sort -n +4'
应该可以与OS X 10.4中的sort
一起使用( 支持该语法)。
当我输入别名lsls时,它会进行排序但是会发布此错误消息“-bash:+4:command not found”
在编辑.bash_profile时是否可能插入了一个离线换行符?例如如果你最终得到这样的东西:
alias lsls='ls -l | sort -n
+4'
......这可能解释了错误信息。
顺便说一句,你可以使用以下方法获得相同的效果,而无需通过sort
管道:
ls -lrS
答案 2 :(得分:0)
This链接讨论了一个包含管道的非常相似的别名。
问题可能不是管道,但有趣的解决方案是使用函数。