J'essaie de créer une macro pour Maestro de clavier pour OS X Faire ce qui suit:
Une de ses options consiste à "exécuter un script shell", donc je pensais que cela le ferait pour 1. Après avoir googler un peu, je suis venu avec ceci: p>
cd /path/to/directory/ ls -t | head -n1
5 Réponses :
cd /path/to/directory/ echo -n "random text goes here" $(ls -t | head -n1) If you want, you can add more text on the end in the same way.
Merci! Cela avait toujours le retour pour une raison quelconque de l'application, même si la -n ne l'a pas montré dans le terminal lui-même. Mais l'écho suivi d'une commande sera utile pour d'autres choses aussi :)
Étant donné que vous utilisez déjà des tuyaux, jetez-en un autre à un autre:
ls -t | awk '{printf("newest file: %s",$0);exit}'
Pourquoi utiliser tête -n1 code> du tout lorsque vous pouvez simplement
Quitter code> de Awk après la première ligne?
Merci. Comment puis-je l'enregistrer dans une variable au lieu de l'imprimer?
Vous ne pouvez pas le faire avec seulement ls code>. Cependant, comme
echo code> est généralement intégré dans la coque, il n'ajoute pas vraiment de surcharge dans le script. Pour obtenir juste le nom du fichier, je suggérerais:
ls -t1 | ( read n; echo -n "newest: $n")
Ainsi, quelqu'un a baissé cela (et d'autres réponses) sur 7 ans plus tard. J'aimerais souligner que cette réponse a été publiée principalement pour répondre à la question précise "Puis-je ne faire que s'il utilise la commande ls code>" (la réponse acceptée à l'aide de
awk code>, à laquelle j'ai contribué une suggestion, a déjà été posté). Ce n'est pas de ma faute si cela ne répond pas à une autre question, même si la question s'inscrit dans les résultats de la recherche.
Vous pouvez le faire dans BASH dans une seule déclaration comme si:
echo -n "newest file: $(find . -maxdepth 1 -type f -print0 |xargs -0 ls -t)"
Utilisation de la sortie de LS code> est une mauvaise pratique. p>
trouver -type f -printf '% t +% p \ n' | TRY -R | tête-n-n ° 1 code> p>
Pour obtenir le texte aléatoire, vous pouvez faire quelque chose comme:
tête -c 12 / dev / urandom | base64 code>. Oh, attends, tu veux dire texte arbitraire i>. Désolé, j'ai été confus.