Mam kilka tysięcy e-booków, które muszą być zorganizowane na bezobsługowym serwerze linuxowym działającym przez bash przez SSH. Wszystkie e-książki są nazywane wdzięcznie jedną z 2 konwencji.Przenieść pliki do katalogów na podstawie pierwszej części nazwy pliku?
- AuthorFirstName AuthorLastName - Book Title.pdf
- AuthorFirstName AuthorLastName - Seria wydawnicza #inSeries - Book Title.pdf
Co chciałbym zrobić, to przenieść wszystkie książki w produkt zorganizowany system taki jak:
`DestinationDirectory/FirstLetterOfAuthorFirstName/Author Full Name/pdf's`
np. następujące książki
Andrew Weiner - Changes.pdf
Allan Cole - Timura Trilogy 01 - When the Gods Slept.pdf
powinien być umieszczony w następujących folderach
/books/A/Allan Cole/Allan Cole - Timura Trilogy 01 - When the Gods Slept.pdf
/books/A/Andrew Weiner/Andrew Weiner - Changes.pdf
Potrzebuję pomocy, jak umieścić to wszystko w skrypcie bash, który będzie chwycić nazw wszystkich plików PDF w prądzie katalogu, a następnie przenieś pliki do właściwego katalogu, tworząc katalog, jeśli jeszcze nie istnieje.
Dziękujemy! To się udało pięknie! sed i cut to programy, z którymi wcześniej nie pracowałem, widzę, że są to rzeczy, których powinienem się nauczyć –
Zagnieżdżone polecenie 'ls' jest niepotrzebne. Jest to więcej niż wystarczające: 'for f in * .pdf; do ... 'Zastanawiam się, dlaczego ludzie używają' ls' w ten sposób. – greyfade
@greyfade powód, dla którego istnieje ls, ponieważ w przeciwnym razie skrypt będzie generował błąd/zawiedzie, jeśli w bieżącym katalogu roboczym nie ma plików PDF, gdy jest uruchamiany –