2012-06-17 20 views
7

Ich habe einen Ordner mit einigen dotfiles, für die ich Symlinks machen möchte. Ich sehe keinen einfachen Weg, dies zu tun.Bash finden, Eltern ausschließen?

ls -a ~/dotfiles werden die dotfiles umfassen, sondern auch . und ..

find ~/dotfiles -maxdepth 1 werden die dotfiles umfassen, sondern auch ~/dotfiles

Antwort

13

Basierend auf MvanGeest’s Kommentar scheint dies zu funktionieren.

find ~/dotfiles -maxdepth 1 -mindepth 1 

Das sieht die Arbeit als auch

ls -A ~/dotfiles 
+1

+1 ich vorhatte, eine Antwort schreiben mit 'Option -A des ls', bis ich das sah. – chepner

+0

@StevenPenny Ich habe BSD gefunden statt GNU finden, du hast Recht, und ich werde meine Skripte entsprechend ändern. Danke, dass du darauf hingewiesen hast. –

1

Sieht aus wie Sie versuchen, Punkt-Dateien zu finden, das heißt. Dateien, die mit einem "." und haben ein zweites Zeichen, das kein "." ist. Dies sollte die Arbeit machen:

find . -name '.[^.]*' 

alle gefundenen Dateien/Pfad zu verbinden/zu/dir:

find $PWD -name '.[^.]*' -exec ln -s '{}' /path/to/dir \; 

Beachten Sie, dass „$ PWD“ erzeugt einen absoluten Pfad, als symbolische Links in relative Pfade werden höchstwahrscheinlich Punkt in Nirvana ...

Verwandte Themen