tiftich
Mitglied
Thread Starter
- Dabei seit
- 23.01.2019
- Beiträge
- 68
- Reaktionspunkte
- 5
Ich möchte von einem Root-Verzeichnis aus nur alle Ordner finden. Bedingung ist, Ordner mit bestimmten Namen in den Resultaten nicht zu berücksichtigen. Soweit kein Problem.
Die Schwierigkeiten beginnen, sobald der Orderpfad eine Extension hat, also Plug-ins, Frameworks (.frameworks), Programme (.app) etc. Ich möchte in meinen Resultaten nämlich nur "echte" Finder-Ordner haben.
Mein Ordner "test":
1. Finde nur Ordner. Hat einer davon irgendwas hinten mit AA im Namen, ignoriere ihn und seine Inhalte:
So weit, so gut. Aber jetzt:
2. Finde nur Ordner. Hat einer davon eine Extension im Namen, z.B. ".com", ignoriere ihn und seine Inhalte. Da ich nicht nur nach ".com", sondern allen vorkommenden Extensions suchen möchte, habe ich es so probiert:
keine Resultate.
nö.
Korrekt. Aber wie kommt das? Warum wird die Angabe "*.*" nicht akzeptiert?
(Im Übrigen funktioniert auch '*.c*' statt "*.c*")
Wie muss ich einen Ordernamen, den ich mit Wildcards in der Extension suchen will, korrekt escapen?
Viele Dank für Erhellung!
Die Schwierigkeiten beginnen, sobald der Orderpfad eine Extension hat, also Plug-ins, Frameworks (.frameworks), Programme (.app) etc. Ich möchte in meinen Resultaten nämlich nur "echte" Finder-Ordner haben.
Mein Ordner "test":
Code:
ls -R
FolderBB FolderCC.com file folderAA
./FolderBB:
fileBB
./FolderCC.com:
FolderDD fileCC
./FolderCC.com/FolderDD:
fileDD
./folderAA:
fileAA
1. Finde nur Ordner. Hat einer davon irgendwas hinten mit AA im Namen, ignoriere ihn und seine Inhalte:
Code:
find . -type d \( -type d -name *AA -prune -o -print \)
.
./FolderBB
./FolderCC.com
./FolderCC.com/FolderDD
So weit, so gut. Aber jetzt:
2. Finde nur Ordner. Hat einer davon eine Extension im Namen, z.B. ".com", ignoriere ihn und seine Inhalte. Da ich nicht nur nach ".com", sondern allen vorkommenden Extensions suchen möchte, habe ich es so probiert:
Code:
find . -type d \( -type d -name '*.*' -prune -o -print \)
keine Resultate.
Code:
find . -type d \( -type d -name "*.*" -prune -o -print \)
nö.
Code:
find . -type d \( -type d -name '*.c*' -prune -o -print \)
.
./folderAA
./FolderBB
Korrekt. Aber wie kommt das? Warum wird die Angabe "*.*" nicht akzeptiert?
(Im Übrigen funktioniert auch '*.c*' statt "*.c*")
Wie muss ich einen Ordernamen, den ich mit Wildcards in der Extension suchen will, korrekt escapen?
Viele Dank für Erhellung!