Jak usunąć wszystkie pliki z katalogu oprócz jednego w BASH Linux
Utrzymanie porządku w katalogach na systemach Linux może wymagać usunięcia większości plików, pozostawiając jedynie wybrany plik. W tym poradniku pokażemy, jak za pomocą prostych komend w BASH usunąć wszystkie pliki z katalogu oprócz jednego. Postępuj zgodnie z poniższymi krokami, aby bezpiecznie i efektywnie zarządzać plikami w swoim systemie.
1. Wprowadzenie
BASH, czyli Bourne Again SHell, to popularna powłoka systemu Unix/Linux, która umożliwia wykonywanie skryptów i automatyzację wielu zadań. Usunięcie wszystkich plików z katalogu oprócz jednego może być przydatne w wielu sytuacjach, na przykład podczas czyszczenia katalogów tymczasowych czy logów.
2. Znalezienie i usunięcie plików
Aby usunąć wszystkie pliki z katalogu oprócz jednego, użyjemy komendy find w połączeniu z rm. Załóżmy, że chcemy zachować plik o nazwie zachowaj.txt.
Krok 1: Przejście do katalogu
Najpierw przejdź do katalogu, w którym chcesz usunąć pliki:
cd /sciezka/do/katalogu
Krok 2: Znalezienie wszystkich plików oprócz jednego
Użyjemy komendy find, aby znaleźć wszystkie pliki oprócz zachowaj.txt:
find . -type f ! -name 'zachowaj.txt’
Wyjaśnienie parametrów:
.: Reprezentuje bieżący katalog.
-type f: Szuka tylko plików (nie katalogów).
! -name 'zachowaj.txt’: Wyklucza plik zachowaj.txt z wyników.
Krok 3: Usunięcie znalezionych plików
Aby usunąć znalezione pliki, możemy przekazać je do komendy rm:
find . -type f ! -name 'zachowaj.txt’ -exec rm {} \;
Ostrzeżenie: Komenda rm usuwa pliki bez możliwości ich odzyskania. Upewnij się, że wykluczony plik (zachowaj.txt) jest poprawny, aby uniknąć przypadkowego usunięcia ważnych danych.
3. Automatyzacja za pomocą skryptu
Aby zautomatyzować ten proces, możemy stworzyć skrypt BASH. Otwórz edytor tekstu i wprowadź poniższy kod:
bash
#!/bin/bash
cd /sciezka/do/katalogu || exit
find . -type f ! -name 'zachowaj.txt’ -exec rm {} \;
Zapisz plik jako usun_pliki.sh i nadaj mu prawa do wykonania:
bash
chmod +x usun_pliki.sh
4. Automatyzacja za pomocą crontab
Aby uruchamiać skrypt regularnie, dodaj go do crontab. Otwórz edytor crontab:
bash
crontab -e
Dodaj poniższą linię, aby uruchamiać skrypt codziennie o północy:
bash
0 0 * * * /sciezka/do/skryptu/usun_pliki.sh
5. Podsumowanie
Usunięcie wszystkich plików z katalogu oprócz jednego jest prostym zadaniem za pomocą BASH i komendy find. Dzięki powyższym wskazówkom możesz łatwo zarządzać plikami w swoim systemie i zautomatyzować ten proces za pomocą skryptów i crontab. Pamiętaj jednak, aby zawsze dokładnie sprawdzać wykluczony plik przed usunięciem, aby uniknąć przypadkowego usunięcia ważnych danych.