Platzhalter mit ls alle Dateien finden, die passend zu einem bestimmten Muster

Ich versuche zu finden alle PDF-Dateien in einem Ordner und alle Unterordner einfach in den terminal, im Gegensatz zu einem Skript. Ich bin auch ziemlich neu in linux, also bitte um Entschuldigung, wenn ich vergessen habe alles, was offensichtlich ist, oder vielleicht von entscheidender Bedeutung zur Diagnose meines Problems.

Ich bin mit der bash 4.1.5(1)-release (i486-pc-linux-gnu), und haben einige getan, Stossen etwa auf google über glob und extglob Ausdrücken, und es erscheint die syntax, die ich verwenden sollten ist

$ ls **.pdf

Diese aber findet nichts, da es keine passende Datei das Muster *.pdf im aktuellen Ordner ./; es scheint zu wollen, zu Lesen ** als *:

ls: cannot access **.pdf: No such file or directory

Dort sind PDFs, die anderswo, in Unterordnern zwischen 1 und 5 tiefen (insbesondere in jeder Unterordner 1-tief), von denen ich einige sehen können, indem Sie mit

$ ls */*.pdf

Daher ls ordnungsgemäß zu funktionieren scheint. Handbuch scheint nicht sehr hilfreich sein, da alles was ich sehen konnte, die möglicherweise einen nutzen für uns Berufung ls mit der -R - flag, das löst das problem nicht, in jedem der genannten Fälle.

Versuchte ich mit extglob Muster (machen Sie sicher, schalten Sie Sie mit shopt). Ich kann sehen, meine Tiefe-1-Dateien mit ls */*?(.)pdf, aber ich kann nicht sehen, nichts mit ls .*(/*)pdf oder ls .*(/*).pdf auch in einem Unterverzeichnis, wo gibt es PDF-Dateien.

Ich habe an anderer Stelle gelesen (in Bezug auf den .gitignore Datei in einem git-repository) , die ** Muster funktioniert nicht für alle.

Könnte dies Auswirkungen auf mich und wie könnte ich dem abhelfen (idealerweise ohne superuser-Privilegien)? Vielleicht dieses (oder ein ähnliches problem) sein, der sich auch auf die extglob Funktionalität?

InformationsquelleAutor Nick Loughlin | 2012-02-08

Schreibe einen Kommentar