4

Я использую Git Bash в качестве моего терминала в Windows. Когда я ls в моей домашней директории, я вижу некоторые NTUSER.DAT записи, которые я предполагаю системные файлы. Они не появляются, когда я запускаю dir в командной строке Windows по умолчанию.

Что я могу сделать, чтобы команда ls игнорировала эти записи в Git Bash?

Скриншот:

3 ответа3

5

После некоторых раскопок я нашел способ обойти это. Я поместил приведенный ниже скрипт в мой файл .bashrc , поэтому эти настройки автоматически загружаются с помощью Git Bash. Этот кусок кода был основан на проекте 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"
0

Благодаря предыдущим ответам, версия для Windows 8.1:

Добавьте свой псевдоним: alias ls=ls_filter.bat $* .
Сохраните следующее как ls_filter.bat где-нибудь вдоль вашего %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" %*
)

Это делает так, что фильтр применяется только тогда, когда вы находитесь в вашем домашнем каталоге. В других каталогах такие папки, как Музыка и Видео, не будут отфильтрованы.

Все эти фильтры делают ls немного медленным (я использую Cmder), поэтому я заменил ls на более быструю версию, которая принимает те же аргументы.

0

Я добавил несколько шаблонов папок в большой (!) раствор талесмелло. Эти папки мешали мне в Windows 7. Теперь моя домашняя папка в git bash полностью пуста. Это оно!

# 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"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .