【发布时间】:2016-10-21 05:14:13
【问题描述】:
我正在尝试使用 zsh 别名使我的 ls 命令使用 printf 以更漂亮的格式打印出我的文件。在我的.zshrc 文件中,我有这一行:
alias lsp="printf '|%15s |%15s |%15s |\n' $(ls)"
由于某种原因,当我在命令行中输入“lsp”时,我得到:zsh: command not found: lsp
我试图找出我的别名不起作用的原因,例如在上面我有一个使用:alias la="ls -la",当我输入 la 时,它会吐出正确的命令。
我猜我的引号有些不对,有人知道吗?
【问题讨论】:
-
您可以并且可能应该使用通配符而不是使用
ls:alias lsp="printf '|%15s |%15s |%15s |\n' *"的输出。除了不需要运行外部命令外,它还具有实际处理包含空格的文件名的优点。ls的输出是供人类使用的,对于非平凡的情况很难正确解析它。对于机器使用,请使用find或使用zsh必须提供的与通配相关的许多功能。