Estas são as etapas para obter um OS X ls , que oculta arquivos com o sinalizador oculto , a menos que a opção -a/-A seja especificada, semelhante aos arquivos dot.
- Instale o Xcode. Estou usando o Xcode 4.5.1 abaixo.
- Faça o download do release do seu SO,
libutilefile_cmds, do link . Há um botão de download no lado direito de cada entrada da lista de pacotes. Este guia foi escrito para o OS X 10.8.2, YMMV, com as etapas exatas abaixo, se você estiver em uma versão diferente. - Extraia os dois arquivos.
-
Abra o
file_cmds.xcodeprojno Xcode e selecione para criar olsdesejado.
Selecioneoprojeto
file_cmdsXcodeàesquerdaeselecioneametalsnaáreaprincipal.NaguiaConfiguraçõesdecompilação,procureCaminhosdepesquisadecabeçalhonacategoriaCabeçalhoseadicioneocaminhodapastaondevocêextraiulibutil.-
Abra o arquivo
print.cna pastalsà esquerda e remova a linha que diz#include <membershipPriv.h>. Salve o arquivo depois. Isso deve quebrar alguma coisa, porque includes estão lá por um motivo, mas ainda não determinei o que é. -
Abra o arquivo
ls.cna mesma pasta e procure por um comentário dizendo/* Only display dot file if -a/-A set. */na funçãodisplay. Substitua-o e a condição abaixo dele com o seguinte:/* Only display dot file and file with hidden flag if -a/-A set. */ sp = cur->fts_statp; if (((sp != NULL && (sp->st_flags & 0x8000)) || cur->fts_name[0] == '.') && !f_listdot) { cur->fts_number = NO_PRINT; continue; } -
Pressione Cmd - B para construir.

SelecioneProdutosàesquerda(fimdalistadepastas)ecliquecomobotãodireitoem
ls.SelecioneMostrarnoFinder.-
Mova o executável
lspara algum lugar conveniente, por exemplo seu diretório pessoal. Em seguida, abra o Terminal e executesudo mv $HOME/ls /bin/lsou, melhor ainda, crie uma nova pasta chamadabinno seu diretório pessoal e mova-a para lá. Adicione essa pasta ao seuPATHdepois.
Testando o resultado:
$ mkdir test
$ cd test
$ touch foo bar
$ chflags hidden bar
$ /bin/ls -lO
total 0
-rw-r--r--@ 1 danielbeck staff hidden 0 25 Okt 22:25 bar
-rw-r--r-- 1 danielbeck staff - 0 25 Okt 22:25 foo
$ $HOME/bin/ls -lO
total 0
-rw-r--r-- 1 danielbeck staff - 0 25 Okt 22:25 foo
$ $HOME/bin/ls -A
bar foo