我在 Mac 上,cp 和 mv 命令让我很头疼,因为如果末尾有斜杠,它们就会复制目录的内容。当我使用制表符补全来指定要复制的目录时,它已经困扰了我好几次。
我注意到 zsh 有一个巧妙的功能,如果按下空格或回车键后不需要尾部斜线,它会删除它。有没有办法让 bash 模仿这种行为?
答案1
Bash 补全无法捕获空格或回车键。它仅适用于 tab 键。
对于您的问题,我认为您可以编写一个小包装脚本来在将命令行传递给实际的 cp/mv 程序之前删除尾随斜杠。
例如,〜/ bin / my_mv:
#!/bin/bash
argv=("$@")
last="${argv[$# - 1]}"
last="${last%/}"
argv[$# - 1]="$last"
mv "${argv[@]}"