Angenommen , ich habe ein Verzeichnis /dir
innerhalb dessen gibt es 3 Symlinks in andere Verzeichnisse
/dir/dir11
, /dir/dir12
und /dir/dir13
. Ich möchte alle Dateien dir
auflisten dir11
, einschließlich der Dateien in dir12
und dir13
.
Um allgemeiner zu sein, möchte ich alle Dateien auflisten, einschließlich derjenigen in den Verzeichnissen, die Symlinks sind. find .
, ls -R
Etc. an den Symlink Stopp ohne weiter in sie zur Liste zu navigieren.
Antworten:
Die
-L
Option, umls
das zu erreichen, was Sie wollen. Es dereferenziert symbolische Links.Ihr Befehl wäre also:
Sie können dies auch mit erreichen
Die
-follow
Option weist find an, symbolischen Links zu Verzeichnissen zu folgen.Unter Mac OS X verwenden
wie
-follow
veraltet.quelle
-follow
- und es hieß, es könnte den Ordner nicht findenollow
find -L .
- Ich hatte das gleiche Problem wie @ S.Matthew_Englishfollow
nur Dateipfade (vollständiger Pfad zur Datei) und keinen Verzeichnispfad. Wie kann ich das tun?Wie wäre es mit Baum ?
tree -l
wird Symlinks folgen.Haftungsausschluss : Ich habe dieses Paket geschrieben.
quelle
ls
. Es ist auch einfacher zu kleben.-type f
bedeutet, dass echte Dateien angezeigt werden (keine Symlinks)-follow
bedeutet, dass es Ihren Verzeichnissymlinks folgt-print
bewirkt, dass die Dateinamen angezeigt werden.Wenn Sie eine Anzeige vom Typ ls wünschen, können Sie Folgendes tun
quelle
ls -L
OptionVerwenden von ls:
von 'man ls':
Oder mit find:
Aus der Find-Manpage:
Wenn Sie feststellen, dass Sie nur einigen symbolischen Links folgen möchten (wie vielleicht nur den von Ihnen erwähnten auf oberster Ebene), sollten Sie sich die Option -H ansehen, die nur Symlinks folgt, die Sie in der Befehlszeile an sie übergeben.
quelle
Ich wusste, dass dies
tree
angemessen war, aber ich hatte keinen Baum installiert. So bekam ich einen ziemlich nahe alternative hierquelle
quelle
-L
Dereferenzen symbolische Links. Dies macht es jedoch auch unmöglich, Symlinks zu Dateien zu sehen - sie sehen aus wie die Datei, auf die verwiesen wird.quelle
für den Fall , Sie möchten alle Datei drucken Inhalt :
find . -type f -exec cat {} +
quelle