Jasiek_M Napisano Marzec 27, 2013 Zgłoszenie Share Napisano Marzec 27, 2013 Hej, Niestety praca po nocy nie popłaca- potrzebowałem na Windowsie za pomocą 7zipa podzielić katalog z muzyka na party po 3700Mb(by weszły na pendrive) ale nie dopisałem M i wyszedł podział po 3700b. Teraz na partycji w jednym katalogu mam 16.000.000plików(słownie 16 milionów! @_@). Dla Windowsa cios okazał się zabójczy-od razu Blue Screen linux się nie przejął-starczy po kliknięciu na partycję przerwać wczytywanie i można normalnie używać. Teraz pytanie dnia jak to usunąć bo rm -rf Muzyka.zip* nie działa-za długa lista argumentów. O tym że nie da rady tego otworzyć w graficznym trybie chyba wspominać nie muszę. Myślę nad jakimś skryptem w bashu co będzie w pętli wyszukiwał pierwszy plik pasujący do wzorca i go usuwał- ktoś się może orientuje jak taka pętla powinna wyglądać? Bo usunięcie wszystkich plików pasujących do wzorca również chyba wywali program więc prawdopodobnie będzie trzeba usuwać po jednym? Ma ktoś jakiś dobry pomysł? Pozdrawiam J.M Edit: może coś w ten deseń? #!/bin/bash FILES=/run/media/Pliki_Inne* for f in $FILES do if [f = Muzyka.zip*] then rm -rf $f done Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Marzec 27, 2013 Zgłoszenie Share Napisano Marzec 27, 2013 Dobrze Ci tak. Nie praca po nocy nie popłaca a praca na Windowsie. Pewnie w bash pętlą for dasz radę albo while. Jaki jest wzorzec tych plików? Pewnie jakiś numerek mają i stałą część nazwy więc łatwo będzie się iterować. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Jasiek_M Napisano Marzec 27, 2013 Autor Zgłoszenie Share Napisano Marzec 27, 2013 wzorzec podałem "Muzyka.zip.*" bo każdy się nazywa Muzyka.zip.<numer>. Powie mi ktoś co robię źle(./skrypt: line 7: [f: nie znaleziono polecenia): #!/bin/bash FILES=/run/media/Pliki_Inne/Muzyka* for f in $FILES do if [f = Muzyka.zip*] then rm -rf $f fi done Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Marzec 27, 2013 Zgłoszenie Share Napisano Marzec 27, 2013 if [f = Muzyka.zip*] - to jest bez sensu, bo wybrałeś przecież tylko pliki, które Cię interesują A jeśli już musisz, to raczej $f niż f, bo w tym miejscu już korzystasz ze zmiennej a nie inicjujesz ją wartością Muzyka.zip*. Myślę, że z basha jednolinijkowo można FILES=/run/media/Pliki_Inne/Muzyka.zip* ; for f in $FILES ; do rm -rf $f ; done Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@sunrise Napisano Marzec 27, 2013 Zgłoszenie Share Napisano Marzec 27, 2013 A może find find . -maxdepth 1 -name '/run/media/Pliki_Inne/Muzyka.zip*' -delete Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Marzec 27, 2013 Zgłoszenie Share Napisano Marzec 27, 2013 Jeszcze empirycznie na 20.000 plików sprawdziłem, że równie szybko jak pętla działa find z -exec find /run/media/Pliki_Inne -name "Muzyka.zip*" -exec rm -f {} \; #backslash przed średnikiem ważny! Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Jasiek_M Napisano Marzec 28, 2013 Autor Zgłoszenie Share Napisano Marzec 28, 2013 Ile Ci usuwała ta komenda 20.000 plików? Bo u mnie już prawie dwie godziny polecenie działa i nie wiem czy cokolwiek konstruktywnego robi Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Mentat Napisano Marzec 28, 2013 Zgłoszenie Share Napisano Marzec 28, 2013 Ile Ci usuwała ta komenda 20.000 plików? Bo u mnie już prawie dwie godziny polecenie działa i nie wiem czy cokolwiek konstruktywnego robi Może w innej konsoli wklep parę razy df | grep "/run/media/Pliki_Inne" Wolne miejsce na partycji powinno rosnąć. Oraz dodatkowo df -i | grep "/run/media/Pliki_Inne" Powinno się zmieniać o 1 z każdym plikiem. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
@WalDo Napisano Marzec 28, 2013 Zgłoszenie Share Napisano Marzec 28, 2013 Ile Ci usuwała ta komenda 20.000 plików?Dokładnie nie pamiętam, ale jakoś chyba 3-4 tys. na minutę. Z tym, że ja to sobie na VB testowałem z jednym rdzeniem i 350MB RAM. Normalnie powinno być szybciej. Jak sprawdzić czy są efekty, to już Mentat wyżej napisał. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Jasiek_M Napisano Marzec 28, 2013 Autor Zgłoszenie Share Napisano Marzec 28, 2013 Już się udało-trwało to zwyczajnie kilka godzin ale się udało. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się