Wie kann ich eine Liste von Verzeichnissen mit ack bekommen?

1

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 . -fwerden die Dateien im Verzeichnis ausgedruckt:

index.html

Wie kann ich die Verzeichnisse im Verzeichnis ausdrucken lassen ? Ich möchte das .gitVerzeichnis 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.

knpwrs
quelle
1
Warum möchten Sie ack verwenden, um Dinge anstelle von ls aufzulisten?
Alan Shutko
Ich brauche etwas, in das ich gerne hineinpfeifen kann xargs. Meine Optionen sind find --print0(seltsame Syntax, ich versuche, mich davon fernzuhalten) und ack --print0beide leiten sich leicht ein xargs -0.
Knpwrs
Wie ist es also ack --print0weniger seltsam als find -print0? Wenn Sie einen Befehl finden, an den Sie sich nur schwer erinnern können, erstellen Sie einen Alias.
Grawity
find . -name .git -a -type d -prune -o -type f -print0vereinfacht zu ack . -f --print0. Ebenso möchte ich einen Weg finden, einfach find . -name .git -a -type d -prune -o -type d -print0in sein Ack-Äquivalent zu gelangen.
Knpwrs

Antworten:

0

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-dirOption, um Verzeichnisse zu ignorieren .

Andy Lester
quelle