[Solved] [bash] Sortowanie plików mp3
-
- Piegowaty Guziec
- Posty: 6
- Rejestracja: 15 wrz 2008, 21:53
- Płeć: Mężczyzna
- Wersja Ubuntu: 8.04
- Środowisko graficzne: GNOME
- Kontakt:
[Solved] [bash] Sortowanie plików mp3
Witam,
Moja kolekcja muzyki uporządkowana jest w sposób /artysta/album/pliki.mp3 . Jednak ostatnio w folderach albumów oprócz plików mp3 nagromadzily się różne pliki konfiguracyjne, które nie są mi potrzebne. Czy da się napisać skrypt w bashu kopiujący te pliki mp3 w jakieś inne miejsce zostawiając pozostałe(konfiguracyjne, pliki okładek itp.), przy zachowaniu struktury (artysta/album/pliki.mp3). Chce po prostu przeczyścić moją kolekcję i chyba to będzie najlepszy sposób.
Proszę o pomoc.
Pozdrawiam
Moja kolekcja muzyki uporządkowana jest w sposób /artysta/album/pliki.mp3 . Jednak ostatnio w folderach albumów oprócz plików mp3 nagromadzily się różne pliki konfiguracyjne, które nie są mi potrzebne. Czy da się napisać skrypt w bashu kopiujący te pliki mp3 w jakieś inne miejsce zostawiając pozostałe(konfiguracyjne, pliki okładek itp.), przy zachowaniu struktury (artysta/album/pliki.mp3). Chce po prostu przeczyścić moją kolekcję i chyba to będzie najlepszy sposób.
Proszę o pomoc.
Pozdrawiam
Ostatnio zmieniony 16 cze 2011, 16:00 przez teomos, łącznie zmieniany 1 raz.
-
- Zakręcona Traszka
- Posty: 587
- Rejestracja: 10 maja 2009, 14:44
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: KDE Plasma
- Architektura: x86
Re: [bash] Sortowanie plików mp3
ja to po prostu usuwałem za pomocą find -name -exec rm -f '{}' +
Na twoim miejscu skopiowałbym całość do innego punktu, a później usuną w powyższy sposób wszystkie pliki mp3 flac ogg itp. w jednej kopii, a w drugiej wszystkie śmieciowe pliki zachowując muzykę.
Ale to metoda "do okoła". Nie wiem jak to zrobić w linii prostej. Trzeba przeczytać man mv
PS
Ale do tego nie mam cierpliwości; zwłaszcza, że może to nie jest rozwiązanie
Na twoim miejscu skopiowałbym całość do innego punktu, a później usuną w powyższy sposób wszystkie pliki mp3 flac ogg itp. w jednej kopii, a w drugiej wszystkie śmieciowe pliki zachowując muzykę.
Ale to metoda "do okoła". Nie wiem jak to zrobić w linii prostej. Trzeba przeczytać man mv
PS
Ale do tego nie mam cierpliwości; zwłaszcza, że może to nie jest rozwiązanie

- ilu2112
- Sędziwy Jeż
- Posty: 35
- Rejestracja: 28 lut 2009, 20:31
- Płeć: Mężczyzna
- Wersja Ubuntu: 12.04
- Środowisko graficzne: GNOME
- Architektura: x86
- Lokalizacja: Łódź
- Kontakt:
Re: [bash] Sortowanie plików mp3
Rozwinę nieco myśl kolegi i podrzucę Ci gotowe rozwiązanie 
I teraz wyjaśnienia:


Kod: Zaznacz cały
marcin@marcin-laptop:~/Pulpit$ tree muzyka
muzyka
├── a
│ ├── a.mp3
│ ├── b
│ │ ├── a.mp3
│ │ └── smieci
│ ├── moje_mp3smieci
│ └── smieci
└── a.mp3
2 directories, 6 files
marcin@marcin-laptop:~/Pulpit$ cp -r muzyka backup
marcin@marcin-laptop:~/Pulpit$ tree backup
backup
└── muzyka
├── a
│ ├── a.mp3
│ ├── b
│ │ ├── a.mp3
│ │ └── smieci
│ ├── moje_mp3smieci
│ └── smieci
└── a.mp3
3 directories, 6 files
marcin@marcin-laptop:~/Pulpit$ find muzyka/ -type f | grep -v 'mp3$' | xargs rm
marcin@marcin-laptop:~/Pulpit$ tree muzyka/
muzyka/
├── a
│ ├── a.mp3
│ └── b
│ └── a.mp3
└── a.mp3
2 directories, 3 files
marcin@marcin-laptop:~/Pulpit$ find backup/ -type f | grep 'mp3$' | xargs rm
marcin@marcin-laptop:~/Pulpit$ tree backup
backup
└── muzyka
└── a
├── b
│ └── smieci
├── moje_mp3smieci
└── smieci
3 directories, 3 files
- cp -r muzyka backup - kopiuje całą zawartość katalogu muzyka/ do katalogu backup/. Jak widać na listingu polecenia tree - sam katalog muzyka został także przekopiowany.
- find muzyka/ -type f | grep -v 'mp3$' | xargs rm - znajduję w katalogu muzyka/ wszystkie pliki, które nie kończą się na mp3 i je kasuję.
- find backup/ -type f | grep 'mp3$' | xargs rm - znajduję w katalogu backup/ wszystkie pliki, które kończą się na mp3 i je kasuję.

-
- Zakręcona Traszka
- Posty: 587
- Rejestracja: 10 maja 2009, 14:44
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: KDE Plasma
- Architektura: x86
Re: [bash] Sortowanie plików mp3
jedna, drobna uwaga: uważaj by nie posłać do diabła swoich plików ogg, mp4 i innych. mp3 to taka artystyczna przenośnia 

-
- Piegowaty Guziec
- Posty: 6
- Rejestracja: 15 wrz 2008, 21:53
- Płeć: Mężczyzna
- Wersja Ubuntu: 8.04
- Środowisko graficzne: GNOME
- Kontakt:
Re: [bash] Sortowanie plików mp3
Więc próbuje rozwiązać ten problem korzystając z porady @ilu2112 ale mam pewien problem.
Otóż po wykonaniu polecenia:otrzymuje coś takiego:
Jest tego troche więcej
Czy ilość mojej kolekcji( ponad 20 GB) ma znaczenie? Może nie mam zainstalowanego jakiegoś pakietu?
Otóż po wykonaniu polecenia:
Kod: Zaznacz cały
find Muzik/ -type f | grep -v 'mp3$' | xargs rm
Kod: Zaznacz cały
rm: nie można usunąć `Patience': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `&': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Grace/desktop.ini': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Muzika/Foo': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Fighters/Echoes,': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Silence,': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Patience': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `&': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Grace/AlbumArt_{8B712305-3A81-4B52-B9D9-40370A068DDE}_Large.jpg': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Muzika/Foo': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Fighters/Echoes,': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Silence,': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Patience': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `&': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Grace/AlbumArtSmall.jpg': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Muzika/Foo': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Fighters/Echoes,': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Silence,': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Patience': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `&': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Grace/AlbumArt_{8B712305-3A81-4B52-B9D9-40370A068DDE}_Small.jpg': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Muzika/Foo': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Fighters/Echoes,': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Silence,': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Patience': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `&': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Grace/cover.jpg': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Muzika/Foo': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Fighters/Echoes,': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Silence,': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Patience': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `&': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Grace/Folder.jpg': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Muzika/Foo': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Fighters/In': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Honor': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `(disc': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `1)/Folder.jpg': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Muzika/Foo': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Fighters/One': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `by': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `One/AlbumArt_{0D72E68B-DD40-40ED-832A-42988B92C31A}_Small.jpg': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Muzika/Foo': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Fighters/One': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `by': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `One/desktop.ini': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Muzika/Foo': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Fighters/One': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `by': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `One/AlbumArtSmall.jpg': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Muzika/Foo': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Fighters/One': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `by': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `One/cover.jpg': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Muzika/Foo': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Fighters/One': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `by': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `One/AlbumArt_{0D72E68B-DD40-40ED-832A-42988B92C31A}_Large.jpg': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Muzika/Foo': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Days': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Grace/AlbumArtSmall.jpg': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Muzika/Three': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Days': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Grace/Three': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Days': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Grace/cover.jpg': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Muzika/Three': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Days': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Grace/Three': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Days': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Grace/Folder.jpg': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Muzika/Three': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Days': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Grace/One-X/AlbumArtSmall.jpg': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Muzika/Three': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Days': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Grace/One-X/cover.jpg': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Muzika/Three': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Days': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Grace/One-X/Folder.jpg': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Muzika/Good': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Charlotte/desktop.ini': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Muzika/Good': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Charlotte/The': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Chronicles': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `of': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Life': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `and': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Death/desktop.ini': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Muzika/Good': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Charlotte/The': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Chronicles': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `of': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Life': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `and': Nie ma takiego pliku ani katalogu
rm: nie można usunąć `Death/AlbumArt_{B2537D45-494F-4792-B1D8-A6B5597DD71B}_Large.jpg': Nie ma takiego pliku ani katalogu

- ilu2112
- Sędziwy Jeż
- Posty: 35
- Rejestracja: 28 lut 2009, 20:31
- Płeć: Mężczyzna
- Wersja Ubuntu: 12.04
- Środowisko graficzne: GNOME
- Architektura: x86
- Lokalizacja: Łódź
- Kontakt:
Re: [bash] Sortowanie plików mp3
Pierwsza myśl jaka mi przyszła do głowy - nazwy plików zawierają spacje?
EDIT: Raczej tak. Problem polega na tym, że jeżeli chcesz skasować plik "moja playlista" to wywołane zostanie polecenie rm moja playlista, które postara się skasować dwa pliki. Wiadomo, że to skutkować będzie błędem. Postaraj się zrobić tak:
EDIT: Raczej tak. Problem polega na tym, że jeżeli chcesz skasować plik "moja playlista" to wywołane zostanie polecenie rm moja playlista, które postara się skasować dwa pliki. Wiadomo, że to skutkować będzie błędem. Postaraj się zrobić tak:
Kod: Zaznacz cały
find Muzik/ -type f | grep -v 'mp3$' | xargs -I {} rm "{}"
- beluosus
- Zakręcona Traszka
- Posty: 695
- Rejestracja: 01 paź 2006, 15:32
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: Xfce
- Architektura: x86
- Kontakt:
Re: [bash] Sortowanie plików mp3
Albo to jest trudniejsze niż mi się wydaje albo kombinujecie jak koń pod górkę.
Najpierw użyj bez delete żeby sprawdzić czy lista faktycznie zawiera niechciane pliki.
Kod: Zaznacz cały
find /dir/ -type f ! -iname '*.mp3' -delete
-
- Piegowaty Guziec
- Posty: 6
- Rejestracja: 15 wrz 2008, 21:53
- Płeć: Mężczyzna
- Wersja Ubuntu: 8.04
- Środowisko graficzne: GNOME
- Kontakt:
Re: [bash] Sortowanie plików mp3
Dzięki! Oba rozwiązania działają 

-
- Zakręcona Traszka
- Posty: 587
- Rejestracja: 10 maja 2009, 14:44
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: KDE Plasma
- Architektura: x86
Re: [Solved] [bash] Sortowanie plików mp3
no i świetnie. Ja nawet nie wiedziałem, że z find można robić takie rzeczy 
@teomos
Mam propozycję: zmień temat na "usuwanie określonego rodzaju plików z drzewa katalogów" bo ciekawe przykłady użycia find zostały tu zamieszczone zaś obecna nazwa sugeruje raczej na próbę przenoszenia plików do stosownych katalogów (sam tak sortowałem kolekcję ebooków).
Szkoda by się to zawieruszyło.

@teomos
Mam propozycję: zmień temat na "usuwanie określonego rodzaju plików z drzewa katalogów" bo ciekawe przykłady użycia find zostały tu zamieszczone zaś obecna nazwa sugeruje raczej na próbę przenoszenia plików do stosownych katalogów (sam tak sortowałem kolekcję ebooków).
Szkoda by się to zawieruszyło.
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 9 gości