Ich habe ein Verzeichnis wie folgt (angegeben von ls -la
):
total 8
drwxr-xr-x 6 <user> <group> 204 Oct 18 12:13 .
drwxr-xr-x 7 <user> <group> 238 Oct 18 11:29 ..
drwxr-xr-x 14 <user> <group> 476 Oct 18 12:31 .git
-rw-r--r-- 1 <user> <group> 601 Oct 18 12:03 index.html
drwxr-xr-x 2 <user> <group> 68 Oct 18 12:13 test
drwxr-xr-x 2 <user> <group> 68 Oct 18 12:13 test2
Beim Ausführen ack . -f
werden die Dateien im Verzeichnis ausgedruckt:
index.html
Wie kann ich die Verzeichnisse im Verzeichnis ausdrucken lassen ? Ich möchte das .git
Verzeichnis ignorieren (was meines Erachtens das Standardverhalten für ack ist). Wie kann ich in diesem Sinne bestimmte Verzeichnisse ignorieren?
Ich verwende ack 1.9.6 unter Mac OSX 10.8.2.
xargs
. Meine Optionen sindfind --print0
(seltsame Syntax, ich versuche, mich davon fernzuhalten) undack --print0
beide leiten sich leicht einxargs -0
.ack --print0
weniger seltsam alsfind -print0
? Wenn Sie einen Befehl finden, an den Sie sich nur schwer erinnern können, erstellen Sie einen Alias.find . -name .git -a -type d -prune -o -type f -print0
vereinfacht zuack . -f --print0
. Ebenso möchte ich einen Weg finden, einfachfind . -name .git -a -type d -prune -o -type d -print0
in sein Ack-Äquivalent zu gelangen.Antworten:
Das kannst du nicht. ack gilt nur für Dateien, nicht für Verzeichnisse. Es handelt sich um ein Textsuchwerkzeug und nicht um einen allgemeinen Dateisucher.
Verwenden Sie die
--ignore-dir
Option, um Verzeichnisse zu ignorieren .quelle