Ignorer les fichiers NTUSER.DAT lorsque ls est sur Git Bash?


4

J'utilise Git Bash comme terminal sous Windows. Quand je ls dans mon répertoire personnel, j'en vois NTUSER.DAT les entrées, qui, je suppose, sont des fichiers système. Ils n'apparaissent pas quand je cours dir dans l'invite Windows par défaut.

Que puis-je faire pour que le ls commande ignore-t-elle également ces entrées dans Git Bash?

Capture d'écran:

enter image description here

Réponses:


5

Après avoir creusé, j'ai trouvé un moyen de le contourner. Je mets le script ci-dessous dans mon .bashrc fichier, donc ces paramètres se chargent automatiquement avec Git Bash. Ce morceau de code était basé sur un fichiers de points projet.

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"

Merci beaucoup, je ne savais même pas ce qui me manquait! Pourriez-vous expliquer la ligne de test -n?
Lea

Il teste si le $LS_COMMON la variable existe. S'il existe, l'instruction suivante va être exécutée, c'est-à-dire alias ls="command ls $LS_COMMON" va être créé. Notez que j'ai basé cet extrait sur les fichiers de points que j'ai aimés dans ma réponse initiale. À l'époque, je ne faisais pas attention à ce que faisait cette ligne, je m'inquiétais simplement de la faire fonctionner. Maintenant que j'en viens à penser, cela pourrait ne pas être nécessaire du tout, comme le $LS_COMMON variable est définie juste au dessus. Je vais laisser la réponse inchangée, car il m'est un peu difficile de vérifier si cela fonctionne (n'utilisez plus Windows).
thalesmello

Ah, je vois. Merci! Je viens de le tester et cela fonctionne bien pour moi sans test -n "$LS_COMMON" && en utilisant la dernière version de git bash et une nouvelle installation de Windows 10. Mais je suppose que je vais le laisser dans.
Lea

0

J'ai ajouté des modèles de dossiers à la grande (!) Solution de thalesmello. Ces dossiers me dérangeaient sous Windows 7. Maintenant, mon dossier personnel dans git bash est complètement vide. Ça y est ...!

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

0

Grâce aux réponses précédentes, une version Windows 8.1:

Ajoutez votre alias: alias ls=ls_filter.bat $*.
Enregistrez les éléments suivants sous ls_filter.bat quelque part le long de votre %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" %*
)

Le filtre ne s'applique donc que lorsque vous vous trouvez dans votre répertoire personnel. Dans d'autres répertoires, les dossiers tels que Musique et Vidéos ne seront pas filtrés.

Tous ces filtres font ls un peu lent pour moi (j'utilise Cmder ), alors j'ai substitué mon ls pour un version plus rapide qui prend les mêmes arguments.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.