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,
libutil
efile_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.xcodeproj
no Xcode e selecione para criar ols
desejado. Selecioneoprojeto
file_cmds
Xcodeàesquerdaeselecioneametals
naáreaprincipal.NaguiaConfiguraçõesdecompilação,procureCaminhosdepesquisadecabeçalhonacategoriaCabeçalhoseadicioneocaminhodapastaondevocêextraiulibutil
.-
Abra o arquivo
print.c
na 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.c
na 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
ls
para algum lugar conveniente, por exemplo seu diretório pessoal. Em seguida, abra o Terminal e executesudo mv $HOME/ls /bin/ls
ou, melhor ainda, crie uma nova pasta chamadabin
no seu diretório pessoal e mova-a para lá. Adicione essa pasta ao seuPATH
depois.
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