Isto vem sob o título "um substituto para isso". O script a seguir emulará aproximadamente o comportamento de ls –l
com a diferença que agrupa os subdiretórios no início de cada listagem de diretório.
#!/bin/sh - sort_ls_output() { sed -n -e '1s/^/1#/p' -e '1n' \ -e 's/^/#/' -e 's/^#d/2#d/' -e 's/^#/3#/' -e p \ | cat -n | sort -n -k2 -k1 | sed 's/[^#]*#//' } if [ $# = 0 ] then ls -l | sort_ls_output else for arg do echo if [ -d "$arg" ] then echo "${arg}:" ls -l "$arg" | sort_ls_output else ls -l "$arg" fi done fi
É um corte brusco.
Ele não lida com arquivos comuns individuais (não-diretórios) na linha de comando, da mesma forma que ls –l
, e não lida com opções (por exemplo, –a
).