如果跨平台(BSD、MacOS)兼容性不是问题,您可以考虑使用 GNU getopt(1) 来解析命令行参数。遗憾的是,Bash 内置的 getopts 命令不理解长选项。
顺便说一句,作为 zsh 用户,我通常会写类似 "ls *(.)"、"ls -d *(/)" 这样的非递归列表。只要你的目录中没有数千个文件,这就能很好地工作。就我而言,"**/*(.)" 也非常有效,即使在我的大型主目录中也是如此。
哦,还有,tmux 允许大量的自定义和鼠标交互。我现在可以用鼠标选择和调整窗格大小,同时选择文本,这些文本会自动复制到 tmux 粘贴缓冲区和桌面粘贴缓冲区。
如果跨平台(BSD、MacOS)兼容性不是问题,您可以考虑使用 GNU getopt(1) 来解析命令行参数。遗憾的是,Bash 内置的 getopts 命令不理解长选项。
顺便说一句,作为 zsh 用户,我通常会写类似 "ls *(.)"、"ls -d *(/)" 这样的非递归列表。只要你的目录中没有数千个文件,这就能很好地工作。就我而言,"**/*(.)" 也非常有效,即使在我的大型主目录中也是如此。