Ignorar arquivos NTUSER.DAT quando ls no Git Bash?

4

Eu uso o Git Bash como meu terminal no Windows. Quando eu ls no meu diretório Home, vejo algumas NTUSER.DAT entradas, que eu assumo são arquivos de sistema. Eles não aparecem quando eu executo dir no prompt padrão do Windows.

O que posso fazer para que o comando ls ignore essas entradas no Git Bash também?

Screenshot:

    
por thalesmello 25.09.2013 / 22:28

3 respostas

5

Depois de algumas escavações, encontrei uma maneira de contornar isso. Eu coloquei o script abaixo no meu arquivo .bashrc , então essas configurações são carregadas automaticamente com o Git Bash. Este trecho de código foi baseado em um projeto dotfiles .

LS_COMMON="-hG"
LS_COMMON="$LS_COMMON --color=auto"
LS_COMMON="$LS_COMMON -I NTUSER.DAT\* -I ntuser.dat\*"

test -n "$LS_COMMON" &&
alias ls="command ls $LS_COMMON"
alias ll="ls -l"
alias la="ls -a"
alias lal="ll -a"
    
por 26.09.2013 / 20:52
0

Graças a respostas anteriores, uma versão do Windows 8.1:

Adicione seu alias: alias ls=ls_filter.bat $* .
Salve o seguinte como ls_filter.bat em algum lugar ao longo do seu %PATH% :

@REM Runs ls with a filter to exclude some Windows folders, but only when run from the user's home folder.
@if "%CD%" == "%USERPROFILE%" (
    ls --color^
        -I "AppData" -I "Contacts" -I "Favorites" -I "Links"^
        -I "Music" -I "My Documents" -I "Pictures" -I "Videos" -I "Saved Games" -I "Start Menu" -I "OneDrive"^
        -I "NTUSER.*" -I "ntuser.*" -I "thumbs.db" -I "Thumbs.db" -I "desktop.ini"^
        -I "Application Data" -I "Cookies" -I "NetHood" -I "PrintHood" -I "Local Settings"^
        -I "Recent" -I "Searches" -I "SendTo" -I "Templates" %*
) else (
    ls --color -I "NTUSER.*" -I "ntuser.*" -I "thumbs.db" -I "Thumbs.db" -I "desktop.ini" %*
)

Isso faz com que o filtro se aplique somente quando você está no seu diretório pessoal. Quando em outros diretórios, pastas como Música e Vídeos não serão filtradas.

Todos esses filtros tornam ls um pouco lento para mim (estou usando Cmder ), então eu ve substituiu meu ls por uma versão mais rápida que usa os mesmos argumentos.

    
por 06.12.2014 / 22:18
0

Eu adicionei alguns padrões de pasta à ótima (!) solução do thalesmello. Essas pastas estavam me atrapalhando no Windows 7. Agora, minha home-pasta no git bash está completamente vazia. É isso!

# refers to http://superuser.com/questions/650322/ignore-ntuser-dat-files-when-ls-on-git-bash
LS_COMMON="-hG"
# --color : On Windows7 this produces permission errors, e.g. for Music folder:
# LS_COMMON="$LS_COMMON --color=auto"
LS_COMMON="$LS_COMMON -I NTUSER.DAT\* -I ntuser.dat\*"
LS_COMMON="$LS_COMMON -I AppData\*"
LS_COMMON="$LS_COMMON -I Music\*"
LS_COMMON="$LS_COMMON -I Pictures\*"
LS_COMMON="$LS_COMMON -I Start\ Menu\*"
LS_COMMON="$LS_COMMON -I Application\ Data\*"
LS_COMMON="$LS_COMMON -I Local\ Settings\*"
LS_COMMON="$LS_COMMON -I Cookies\*"
LS_COMMON="$LS_COMMON -I ntuser.ini"
LS_COMMON="$LS_COMMON -I ntuser.pol"
LS_COMMON="$LS_COMMON -I Thumbs.db"
LS_COMMON="$LS_COMMON -I Favorites\*"
LS_COMMON="$LS_COMMON -I Recent\*"
LS_COMMON="$LS_COMMON -I Searches\*"
LS_COMMON="$LS_COMMON -I Videos\*"
LS_COMMON="$LS_COMMON -I Desktop\*"
alias ls="command ls $LS_COMMON"
alias ll="ls -l"
alias la="ls -al"
    
por 24.04.2014 / 19:48