Moja struktura katalogów jest następującaznaleźć pierwszy plik w katalogu
Directory1\file1.jpg
\file2.jpg
\file3.jpg
Directory2\anotherfile1.jpg
\anotherfile2.jpg
\anotherfile3.jpg
Directory3\yetanotherfile1.jpg
\yetanotherfile2.jpg
\yetanotherfile3.jpg
próbuję użyć wiersza polecenia w powłoce bash na Ubuntu zrobić pierwszy plik z każdego katalogu i zmień jego nazwę do nazwy katalogu i przesuń go o jeden poziom wyżej, aby znalazł się obok katalogu.
W powyższym przykładzie:
file1.jpg
zostanie zmieniona naDirectory1.jpg
i umieszczone obok folderuDirectory1
anotherfile1.jpg
zostanie zmieniona naDirectory2.jpg
i umieszczone obok katalogu katalog2yetanotherfile1.jpg
zostanie zmieniona naDirectory3.jpg
i umieszczona obok Folder eDirectory3
Próbowałem przy użyciu:
find . -name "*.jpg"
ale nie listę plików w kolejności (muszę pierwszy plik).
Linia:
find . -name "*.jpg" -type f -exec ls "{}" +;
wymienia pliki w odpowiedniej kolejności, ale jak mam wybrać tylko pierwszy plik w każdym katalogu i przenieść go w górę o jeden poziom?
Każda pomoc zostanie doceniona!
Edycja: Kiedy odnosimy się do pierwszego pliku, mam na myśli to, że każdy jpg jest ponumerowany od 0 do jak największej liczby plików w tym folderze - na przykład: plik1, plik2 ...... plik34, plik35 itd ... Inną rzeczą, o której warto wspomnieć, jest format plików losowych, więc numeracja może rozpoczynać się od 0 lub 1a lub 1b itd.
Zdefiniuj " pierwszy". –
Rozszerzając komentarz Ignacio, ważne jest, aby wiedzieć, co masz na myśli przez "pierwszy". Pierwszy alfabetycznie? Jeśli tak i jeśli liczby mają 2 cyfry, czy chcesz posortować file3.jpg przed plikiem file10.jpg zamiast alfabetycznego sposobu, w którym plik 10.jpg byłby pierwszy? Jeśli nie chcesz alfabetycznie, czy chcesz pierwszy w kolejności sposób ich przechowywania na dysku? Według daty? I tak dalej. – Bdoserror