Usuwanie plików, których nazwy zaczynają się od minusa

Data publikacji: 2016-11-16 | Tagi:

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 :).


Oceń ten post:
Podziel się:

comments powered by Disqus

IT w obrazkach: