Je suis nouveau à Linux. J'ai un dossier avec de nombreux fichiers et j'ai besoin d'obtenir le dernier fichier en fonction du nom du fichier. Exemple: j'ai 3 fichiers rat_20190111.txt code>
rat_20190212.txt code>
rat_20190321.txt code>. J'ai besoin d'une commande Linux pour déplacer le dernier fichier ici
rat20190321.txt code> à un répertoire spécifique. P>
3 Réponses :
Si le modèle de fichier reste identique, vous pouvez essayer la commande ci-dessous: comme indiqué par @wwn, il n'est pas nécessaire d'utiliser Trier code>, car Les fichiers sont lexicographiquement tri
ls code> doivent faire le travail déjà de les trier afin que la commande devienne: p>
Étant donné que les fichiers semblent être lexicographicaly triables LS devraient faire le travail déjà de les trier, c'est-à-dire: vous pouvez enregistrer un tuyau ;-): mv $ (ls rat * | queue -1) / chemin / à / à / à / à / à / à / Code>
@wwn vous êtes correct en fait. Je n'ai pas réalisé qu'il n'y avait pas besoin de trier. Merci :)
@Pacifist: analyse d'analyse de LS code> pourrait ne pas être une bonne idée: mywiki.woolgedge.org / Parsingls
La commande suivante fonctionne. P>
ls | grep -v '/ $' | Trier | queue 1 | XARGS -D '\ N' -R -R MV - / chemin / à / à / p>
La commande commence première sortie de LS avec nouvelle ligne. Ensuite, il trie, prend le dernier fichier, puis il le déplace dans le répertoire requis. P>
espère que cela aide. P>
Utilisez la commande ci-dessous p>
CP LS | Tail -N 1 code> / Données ... P>
Ceci est hors topic pour débordement de pile et j'ai voté pour le fermer
@talonmies Il s'agit d'une question de programmation de script shell, de sorte qu'il est sur le sujet ici.
Est le format de vos noms de fichiers fixes, c'est-à-dire toujours
rat _ code> suivi d'une année à 4 chiffres, de 2 chiffres mois et de 2 chiffres, suivi de
.txt code>? Vous semblez avoir oublié le soulignement dans le dernier nom de fichier.