Czy zdarzyło Ci się pomylić się w przełącznikach dla jakiejś komendy w wyniku czego nagle w katalogu pojawiły się pliki --help
albo -f
? Mi zdarza się to co jakiś czas. Pliki się pojawiają, nie są potrzebne więc można je usunąć, prawda? Ale ktoś, kto próbował to zrobić wie, że to nie jest takie proste, jakim się wydaje.
Dla potrzeb eksperymentu załóżmy, że mamy taką sytuację:
-rw-r--r-- 1 void void 0 lis 8 06:53 -f -rw-r--r-- 1 void void 0 lis 8 06:53 --help
Dwa pliki: -f
oraz --help
pojawiły się w wyniku naszych działań. Należy się ich pozbyć. Pierwsze podejście:
rm -f rm --help
Nie zda egzaminu - nazwy plików traktowane są jako przełączniki dla komendy rm
.
Taki sam efekt daje escapowanie:
rm \-f rm \--help rm \-\-help
Jak sobie z tym poradzić? Osobiście zam trzy metody z czego dwie uważam za bardzo dobre, a trzecią traktuję w kategoriach ciekawostki.
Pierwsza metoda, to podawanie (relatywnej lub absolutnej) ścieżki:
rm ./-f rm ./--help
Druga metoda, to wyłączenie interpretacji przełączników:
rm -- -f rm -- --help
Trzecia metoda, to find
:
find ./ -name "-f" -delete find ./ -name "--help" -delete
Trzeciej metody oczywiście nie polecam, bo find
(jak sama nazwa wskazuje) nie sluży do usuwania plików :).