比如以前我可以用 rm dirname -r 或 rm -r dirname 来删除目录 dirname 但是突然变成只能用 rm -r dirname 了,把-r 放在句尾无法执行
有人说需要安装 coreutil ,这个东西我已经通过 brew 安装了
1
fcicq 2016-07-20 08:55:56 +08:00
GNU 的 utils 通常能接受选项在最后, BSD 系的基本不行.
|
2
jarlyyn 2016-07-20 09:12:26 +08:00 via Android
Brew 什么鬼
|
4
araraloren 2016-07-20 09:24:23 +08:00
~~那就不要放在后面呗,这种事情在于命令行解析是如何实现的吧,比如有些命令的有些参数就是不能放在某个位置,或者特定的参数一定要放在最后之类的。。
|
6
yangtukun1412 2016-07-20 09:44:53 +08:00
你需要修改 $PATH, 把 coreutils 的 bin 目录放到 /bin 前面.
|
7
SErHo 2016-07-20 09:45:25 +08:00
brew 装的 coreutil ,命令行需要使用 g 前缀,比如 grm, gawk 等等。
"All commands have been installed with the prefix 'g'." |
8
shalk 2016-07-20 10:38:18 +08:00
要不要重新包装一下 rm
|
9
morefreeze 2016-07-20 11:25:30 +08:00
感觉最好还是按命令的--help 来吧,而且一般命令参数都要放在最后操作对象的前面,放在最后好难受(虽然我也经常写了一半发现忘了加参数了)。
另外 rm dir -r 这样写不会理解成我想删 dir 和一个叫"-r"的文件吗? usage: rm [-f | -i] [-dPRrvW] file ... unlink file |
10
abscon 2016-07-20 12:02:50 +08:00 via iPhone
答主确定 rm 是 bash 命令?
|
11
lnkisi 2016-07-20 14:23:44 +08:00
这与具体的可执行文件有关吧,例如 macOS 下 curl 可以接受句尾选项。
|
12
skydiver 2016-07-20 14:24:08 +08:00
which rm
|
13
BlueMeow 2016-07-20 14:50:13 +08:00
就因为这个所以全部完成 GNU 版( gmv 、 grm 、 gcp )了。临时想起来一个参数必须退到前面,感觉很不爽。另外如果 sudo 可以加到后面就更好了
|
15
BlueMeow 2016-07-20 15:06:12 +08:00
@holyghost 嗯这个是可以,不过要先回车执行一次。对于有的不 sudo 也可以执行(但不是预期的目的)的命令,比如 passwd ,还是比较麻烦。不过发现了 oh-my-zsh 的 sudo 插件,两个 Esc 就可以添加 sudo 了
|
16
ooxxcc 2016-07-20 15:09:59 +08:00
brew list coreutils
以及 which rm 你就知道为什么了 你输入的 rm 调用的还是 mac 的 rm |
18
Tink 2016-07-20 17:34:09 +08:00 via iPhone
这个和用的 shell 有关吧
|
19
cxbig 2016-07-20 18:05:14 +08:00
养成习惯,命令»参数»对象。
另外在 Terminal 里无论是 emacs 模式还是 vim 模式都有前后位置跳转的快捷键,用好了回去补也不难。 |