ligne de commande trouver le premier fichier dans un répertoire
Mon répertoire de la structure est comme suit
Directory1\file1.jpg
\file2.jpg
\file3.jpg
Directory2\anotherfile1.jpg
\anotherfile2.jpg
\anotherfile3.jpg
Directory3\yetanotherfile1.jpg
\yetanotherfile2.jpg
\yetanotherfile3.jpg
Je suis en train d'utiliser la ligne de commande dans un shell bash sur ubuntu pour prendre le premier fichier de chaque répertoire et renommez le nom du répertoire et de le déplacer d'un niveau vers le haut de sorte qu'il se trouve à côté du répertoire.
Dans l'exemple ci-dessus:
file1.jpg
sera renomméDirectory1.jpg
et placées le long du dossierDirectory1
anotherfile1.jpg
sera renomméDirectory2.jpg
et placées le long du dossier Directory2yetanotherfile1.jpg
sera renomméDirectory3.jpg
et placées le long du dossierDirectory3
J'ai essayé d'utiliser:
find . -name "*.jpg"
mais il n'est pas de lister les fichiers dans l'ordre (j'ai besoin de le premier fichier).
Cette ligne:
find . -name "*.jpg" -type f -exec ls "{}" +;
répertorie les fichiers dans le bon ordre, mais comment puis-je choisir le premier fichier dans chaque répertoire et de le déplacer d'un niveau vers le haut?
Toute aide serait appréciée!
Edit: Quand je parle de la première fichier ce que je veux dire c'est que chaque jpg est numéroté de 0 à cependant beaucoup de fichiers dans ce dossier - par exemple: fichier1, fichier2...... file34, file35 etc... une Autre chose à mentionner est le format des fichiers est aléatoire, de sorte que la numérotation peut débuter à 0 ou 1a ou 1b, etc...
source d'informationauteur user2008746
Vous devez vous connecter pour publier un commentaire.
Si première signifie que quel que soit le shell glob trouve d'abord (lexicale, mais probablement affectées par
LC_COLLATE
), alors cela devrait fonctionner:Preuve de concept:
Vous pouvez aller à l'intérieur de chaque dir et de l'exécution:
Look de tous les répertoires de premier niveau, d'identifier d'abord le fichier dans ce répertoire, puis le déplacer d'un niveau