如果我运行,ls
我会得到彩色输出,我发现它非常方便快速浏览文件类型。当我尝试通过管道将其less
与-r
和-R
标记均匀时,颜色总是会丢失。我使用的是zsh
5.0.7 版。有任何想法吗?谢谢。
编辑:我在 OS X 上。
我有这个文件夹结构:
??? foo1
? ??? bar1.txt
? ??? bar2.txt
??? foo2
? ??? bar3.txt
? ??? bar4 with a space.txt
??? foo3
??? qux1
??? bar5.txt
??? bar6.txt
Run Code Online (Sandbox Code Playgroud)
我想将其展平,每个文件夹级别之间都有一个下划线:
??? foo1_bar1.txt
??? foo1_bar2.txt
??? foo2_bar3.txt
??? foo2_bar4 with a space.txt
??? foo3_qux1.bar6.txt
??? foo3_qux1_bar5.txt
Run Code Online (Sandbox Code Playgroud)
我环顾四周,但没有找到任何可行的解决方案,主要是我认为是因为我的问题有两个特殊性:根目录中可能有多个文件夹级别,还因为某些文件可能有空格。
知道如何在 bash 中完成此操作吗?谢谢!
编辑:运行 gleen jackman 建议的答案我得到了这个:
第一级文件夹有两个下划线。知道如何避免这种情况或只是重命名它以便只是一个下划线吗?谢谢。
我无法正确显示包含重音字符的自动完成文件名,例如ã
在我的 shell 配置zsh
和oh-my-zsh 中。
我创建了一个文件名cão.txt
来演示这个问题。如果你有兴趣,那就是dog
葡萄牙语。
因此,当我尝试像 那样自动完成时cat c<tab>
,会发生这种情况:
% cat ca<0303>o.txt
hi dog
Run Code Online (Sandbox Code Playgroud)
并echo $0
给我:-zsh
但是,如果我去一个“普通”zsh
会话,完全相同的自动完成工作正常:
% zsh
% echo $0
zsh
% cat cão.txt
hi dog
Run Code Online (Sandbox Code Playgroud)
我的locale
是这样的:
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
Run Code Online (Sandbox Code Playgroud)
和LANG
变量我试过它是空的,"en_US.UTF-8"
还有"pt_PT.UTF-8"
。此外,我locale
在进入“普通”zsh
会话之前和之后仔细检查了设置是否完全相同。
此外,它在默认终端 OSX 应用程序和 iTerm2 中的工作方式相同。
我正在使用 zsh 版本5.0.7
。
这里是我的.zshrc文件,以及我使用的其他点文件。
我已经尝试oh-my-zsh …