Je peux montrer le fichier cible qu'un lien pointe vers l'utilisation 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
Existe-t-il un moyen d'afficher moins de sortie sans avoir à passer par une autre commande telle que awk? Par exemple:
snowch$ ls ?? /usr/local/bin/mvn
/usr/local/bin/mvn -> ../Cellar/maven/3.2.3/bin/mvn
J'utilise 3.2.53 sur OS X 10.9.5. La sortie de plusieurs commandes est illustrée ci-dessous:
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
a très bien fonctionné. Merci!stat -c %N -- /usr/local/bin/mvn
. Pour supprimer les citations, je devais en| perl -pe 's/['"'"'`]//g'
tr -d \'\`
serait suffisant. Notez que ce système RHEL aurait GNUfind
avec lequel vous aurez plus de contrôle.Utilisez la
file
commande.ou
En outre, s'il vous plaît aller lire la page de manuel de
ls
et vérifiez les options-L
et-H
voir si cela suffira à vos besoins.la source
ls
options, mais nonfile
. Malheureusement, ni l'un ni l'autre ne semble fonctionner :(linux
boîte. Veuillez ajouter l'osx
un de vos tags. Cela devrait également attirer l'attention desosx
utilisateurs. J'ai modifié le post pour ajouter le tag, mais je n'ai pas assez de crédits pour que le montage apparaisse immédiatement.Avec un GNU
ls
au moins (et, apparemment,tcsh
l'implémentation), vous pouvez pirater la$LS_COLORS
variable d'environnement pour insérer des délimiteurs où vous le souhaitez (maistcsh
la fonction intégréels-F
ne fait pas de cibles de lien - seulement des indicateurs de lien )ls
Insère généralement des échappements de terminal arbitraires non imprimables basé sur les valeurs stockées dans cet environnement var, mais rien ne nous empêche d'insérer quoi que ce soit d'autre à la place. Plus à ce sujet ici .Par exemple:
Cela met une chaîne comme
//
en tête de chaque liste (donc juste avantlrwcrwx
) et///\n
juste avant le nom de fichier de tout lien.sed
puis filtre sur les plages de lignes - ild
supprimera chaque ligne d'entrée jusqu'à ce qu'il rencontre///
et à partir de là jusqu'à la ligne suivante qui correspond,//
il supprimera les lignes correspondantes//
. Il n'obtient donc que le nom du lien et la cible du lien, quels que soient les caractères intermédiaires. C'est parce que/
ne peut pas se produire dans un nom de fichier - et ceux dans n'importe quel cheminls
peuvent imprimer ne se produiront que séparément.Voir?
... qui imprime:
Essayez-le vous-même.
la source
ls
qui prend en charge deLS_COLORS
cette façon et a--color=always
et les options après les arguments? Si sur un système GNU, pourquoi utiliseriez-vous quelque chose de compliqué quand vous pouvez utiliserfind
oustat
? Cela ne fonctionnera probablement pas non plus si vous en faitesln -s /// some-file
.ls
. Je me souviens avoir lu il y a des mois quelque part ailleurs à propos dels
tous qui ont tendance à accepter une syntaxe similaire à celle d'un termcap. Bon point à propos de laln -s ///
chose - mais les\0
NUL fonctionnent également - et de manière-R
écursive. Quant à savoir pourquoi - c'est facile à utiliser. Dans certains cas, plus facile quefind
- et cela semblait un peu plus sur le sujet ici qu'ilfind
n'aurait été. En tout cas, pas trop de gens le considèrent, donc je le mentionne quand on me le rappelle.tcsh
ont une fonctionls-F
intégrée qui prend en chargeLS_COLORS
la même manière que certaines versions de GNUls
, mais elle a recours à l'invocationls -F
si vous lui passez une option, de sorte que cela ne fonctionnera pas à moins quels
GNU ne soitls
sur votre système.[Sous Linux / Bash]
Je ferais ceci:
La
sed
commande réduit plusieurs espaces en un seul espace; lecut
extrait le 9ème champ à partir de là où le séparateur de champ est un espace.Sortie typique de ceci:
Les alternatives sont:
Mais ceux-ci sont imparfaits: le premier peut produire des espaces de fin; le second, menant des espaces.
la source