Skocz do zawartości

Usuwanie Jednego Pliku


kaczorro89

Rekomendowane odpowiedzi

Witam.

 

Jak zrobić w bash'u żeby usuwać tylko jeden plik o losowej nazwie z katalogu?

Np.

Mam katalog a w nim powiedzmy pliki o nazwie: plik1, plik2, plik3 itd

I jak teraz zrobić żeby usunął jeden z tych plików, obojętnie który.

 

Próbowałem za pomocą

rm plik?

ale to usuwa wszystkie pliki w nazwie mające "plik". Próbowałem także

rm plik[0-20]

ale wtedy wywalało mi że nie znaleziono takiego pliku.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli to ma być na pewno plik, a nie może być katalog to polecenie ls nie da odpowiedniego wyniku, bo wypisuje też katalogu.

Wtedy można użyć polecenia find:

find . -maxdepth 1 -type f

Następnie, polecenie sort ma taki miły parametr: -R, który po prostu wypisuje linie wejściowe losowej kolejności.

 find . -maxdepth 1 -type f| sort -R

Teraz wystarczy przeczytać pierwszą linię wyjścia (polecenie head) i będziemy mieli losową nazwę pliku.

 find . -maxdepth 1 -type f | sort -R | head -1

 

Na końcu, trzeba tę nazwę pliku podać jakoś do polecenia rm. Można to zrobić na różne sposoby.

 

Pierwszy sposób:

rm $(find . -maxdepth 1 -type f | sort -R | head -1)

Drugi sposób:

rm `find . -maxdepth 1 -type f | sort -R | head -1`

Trzeci sposób:

find . -maxdepth 1 -type f | sort -R | head -1 | xargs rm

 

Polecam we własnym zakresie się dowiedzieć czym one się między sobą różnią ;-)

Odnośnik do komentarza
Udostępnij na innych stronach

Zadanie domowe jak nic, ale bardzo ciekawe nie powiem. Bede musial zanotowac dla moich studentow.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 weeks later...
Zadanie domowe jak nic, ale bardzo ciekawe nie powiem. Bede musial zanotowac dla moich studentow.

Indeed, kto przy zdrowych zmysłach chciałby tak porządkować cokolwiek :P

Jeny ludzie mogliby chociaż starać się ukryć, że chcą zadanie domowe rozwiązać a nie taka słaba konspiracja...

 

Dzięki wszystkim za odpowiedzi. Rozwiązałem to na inny sposób. Po prostu usuwałem ostatni powstały plik :)

No i gdzie tu random przepraszam?

Chciałeś przeto

Jak zrobić w bash'u żeby usuwać tylko jeden plik o losowej nazwie z katalogu?

Więc takie nijak rozwiązanie, ja bym Ci za to nie postawił pozytywnej oceny :P

Odnośnik do komentarza
Udostępnij na innych stronach

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ę
×
×
  • Dodaj nową pozycję...