Ich kann die Zieldatei anzeigen, auf die ein Link verweist ls -l
:
snowch$ ls -l /usr/local/bin/mvn
lrwxr-xr-x 1 snowch admin 29 12 Dec 08:58 /usr/local/bin/mvn -> ../Cellar/maven/3.2.3/bin/mvn
Gibt es eine Möglichkeit, weniger Ausgabe anzuzeigen, ohne einen anderen Befehl wie awk durchlaufen zu müssen? Z.B:
snowch$ ls ?? /usr/local/bin/mvn
/usr/local/bin/mvn -> ../Cellar/maven/3.2.3/bin/mvn
Ich verwende 3.2.53 unter OS X 10.9.5. Die Ausgabe mehrerer Befehle ist unten dargestellt:
snowch$ ls -H /usr/local/bin/mvn
/usr/local/bin/mvn
snowch$ ls -L /usr/local/bin/mvn
/usr/local/bin/mvn
snowch$ file /usr/local/bin/mvn
/usr/local/bin/mvn: POSIX shell script text executable
snowch$ file -b /usr/local/bin/mvn
POSIX shell script text executable
stat -f "%N -> %Y" -- /usr/local/bin/mvn
hat super funktioniert. Vielen Dank!stat -c %N -- /usr/local/bin/mvn
. So entfernen Sie die Zitate ich Rohr hatte dieser in| perl -pe 's/['"'"'`]//g'
tr -d \'\`
wäre genug. Beachten Sie, dass dieses RHEL-System über eine GNU verfügt,find
über die Sie mehr Kontrolle haben.Verwenden Sie den
file
Befehl.oder
Lesen Sie auch die Manpage von
ls
und überprüfen Sie die Optionen-L
und prüfen-H
Sie, ob dies für Ihre Anforderungen ausreicht.quelle
ls
Optionen ausprobiert , aber nichtfile
. Leider scheint beides nicht zu funktionieren :(linux
Box bist . Bitte fügen Sieosx
als eines Ihrer Tags. Das sollte auch dieosx
Benutzer auf sich aufmerksam machen. Ich habe den Beitrag bearbeitet, um das Tag hinzuzufügen, aber ich habe nicht genügend Credits, damit die Bearbeitung sofort angezeigt wird.ls
Zumindest mit einer GNU (und anscheinend mittcsh
der Implementierung) können Sie die$LS_COLORS
Umgebungsvariable hacken , um Trennzeichen einzufügen, wo Sie möchten (abertcsh
die integrierte Funktionls-F
führt keine Verknüpfungsziele aus - nur Verknüpfungsflags ). Fügt normalerweisels
beliebige nicht druckbare Terminal-Escapezeichen ein basierend auf den in dieser Umgebung gespeicherten Werten var, aber nichts hindert uns daran, stattdessen willkürlich etwas anderes einzufügen. Mehr dazu hier .Beispielsweise:
Dadurch wird eine Zeichenfolge wie
//
am Anfang jeder Auflistung (also kurz zuvorlrwcrwx
) und///\n
kurz vor dem Dateinamen eines Links eingefügt.sed
filtert dann nach Zeilenbereichen - es wirdd
jede Eingabezeile gelöscht, bis sie auf sie trifft,///
und von dort durch die nächste Zeile, die übereinstimmt//
, werden übereinstimmende Zeilen gelöscht//
. Es werden also nur der Linkname und das Linkziel abgerufen - unabhängig von den dazwischenliegenden Zeichen. Dies liegt daran,/
dass ein Dateiname nicht vorkommen kann - und diejenigen in einem Pfad, diels
möglicherweise gedruckt werden, nur einzeln auftreten.Sehen?
... welche druckt:
Versuch es selber.
quelle
ls
, dieLS_COLORS
diesen Weg unterstützt , und a--color=always
und Optionen nach Argumenten? Wenn auf einem GNU-System, warum sollten Sie etwas verwenden, das sich verschlungen hat, wenn Sie es verwenden könnenfind
oderstat
? Das wird wahrscheinlich auch nicht funktionieren, wenn Sie welche tunln -s /// some-file
.ls
. Ich erinnere mich, dass ich vor Monaten irgendwo anders gelesen habe, dassls
alle dazu neigen, eine Termcap-ähnliche Syntax zu akzeptieren. Guter Punkt über dieln -s ///
Sache - aber\0
NULs funktionieren auch - und-R
ekursiv. Warum - nun, es ist einfach zu bedienen. In einigen Fällen einfacher alsfind
- und es schien hier ein wenig mehr zum Thema zu gehören alsfind
es gewesen wäre. Auf jeden Fall denken nicht zu viele Leute darüber nach, deshalb erwähne ich es, wenn ich daran erinnert werde.tcsh
verfügen über eine integriertels-F
Version, dieLS_COLORS
die gleiche Version wie einige Versionen von GNU unterstützt. Siels
wird jedoch aufgerufen,ls -F
wenn Sie eine Option an GNU übergeben. Dies funktioniert hier nur, wennls
GNUls
auf Ihrem System vorhanden ist.[Unter Linux / Bash]
Ich würde das tun:
Der
sed
Befehl reduziert mehrere Leerzeichen zu einem einzigen Leerzeichen. Dascut
extrahiert das 9. Feld weiter, wobei das Feldtrennzeichen ein Leerzeichen ist.Typische Ausgabe davon:
Alternativen sind:
Aber diese sind unvollkommen: Der erste kann nachgestellte Leerzeichen ausgeben; die zweiten führenden Räume.
quelle