我想使用该ls
命令首先显示目录,然后显示文件。我试过:
ls -la | sort -k 1
但我收到了错误的订单。
答案1
以下命令将首先列出目录,其次列出普通文件,第三列出链接。
ls -la | grep "^d" && ls -la | grep "^-" && ls -la | grep "^l"
此外,创建一个别名此命令可以保存击键。
编辑:
如果您首先想要目录,然后再想要所有非目录的内容,请使用以下命令:
ls -la | grep "^d" && ls -la | grep -v "^d"
答案2
我确实很喜欢 *nix,也喜欢看到这些回复中所体现的创造力......
我在 GNU Linux 上并没有那么花哨:
alias ls='ls --color -h --group-directories-first'
鉴于我更喜欢使用 Linux CLI 应用程序,因此我倾向于在 OSX 上更新 coreutils:
brew install coreutils
alias ls='/usr/local/bin/gls --color -h --group-directories-first'
答案3
对于 Mac 用户,你可以安装核心工具。
该公式提供了 GNU 核心实用程序实现,对于 macOS 也提供的命令,它们已使用“g”前缀安装。
brew install coreutils
gls --color -h --group-directories-first
你可以使用别名进一步简化你的生活
alias ls='gls --color -h --group-directories-first'
答案4
您有几种选择,取决于您是否想保持字母顺序。
您可以尝试:
ls -al | sort -k1 -r
或者这样,保持具有相同权限的文件按字母顺序排列:
ls -al | 排序 -k1,1 -k9,9 -r
或者,正如 eleven81 所说(但此版本列出了所有内容):
ls -la | grep "^d" && ls -la | grep“^-”&& ls -al | grep -v "^[d|-]"