Szukam rozwiązania, które będzie używane jako odpowiedź na „rm: usunąć zwykły plik chroniony przed zapisem [x]?”
Kilkakrotnie myślałem o wydaniu postaci, a następnie powrotu karetki, w języku bashrc. Jak to zrobimy?
bash
command-line
rm
Iancovici
źródło
źródło
Odpowiedzi:
Edytuj na podstawie zaktualizowanego pytania:
Aby uniknąć pytania o usunięcie plików, dodaj
-f
opcję („force”):Ma to jeden efekt uboczny, o którym powinieneś wiedzieć: Jeśli którakolwiek z podanych ścieżek nie istnieje, nie zgłosi tego i powróci pomyślnie:
Oryginalna odpowiedź:
Oto jedno proste rozwiązanie:
yes
powtarza nieskończony ciąg znaków, rozdzielając go znakami nowej linii.head
zatrzymuje go po$number
raztr
kolejny i tłumaczy znaki nowej linii na zwroty karetki. Możesz nie zobaczyć żadnego wyniku z powodu powrotu karetki, ale przekazanie go do tego polecenia (inbash
) powinno to zilustrować:Użytkownicy bez
bash
rura może wynik dood
,hexdump
lubxxd
aby zobaczyć rzeczywiste postacie zwrócone.źródło
Innym problemem, na który natrafiam od czasu do czasu,
rm
jest aliasrm -i
, coś takiego w / etc / bashrc:W takim przypadku możesz albo
unalias rm
skorzystać z tej sztuczki, którą znalazłem przed laty, wstawić odwrotny ukośnik przed poleceniem, które zostało aliowane, aby zignorować alias tylko jeden raz, na przykład:Więcej informacji na temat aliasów można znaleźć w artykule w Nixcraft .
źródło
rm
jest na stałe proszony „interaktywnie” (monit o oczekiwanie na dane wejściowe użytkownika) o zapisywanie chronionych plików. istnieją dwie metody, aby zapobiecrm
pytaniu:i
(oba działają również bez
-r
usuwania plików zamiast katalogów)wyjaśnienie:
-f
sprawia,rm
że „ignoruj nieistniejące pliki i argumenty, nigdy nie pytaj”.--interactive=never
robi to, co mówi: nigdy nie bądź interaktywny. innymi słowy: nigdy nie pytaj.różnica między
-f
i--interactive=never
jest tą częścią: „zignoruj nieistniejące pliki i argumenty”.porównać:
i
różnica jest szczególnie interesująca podczas pisania skryptów, w których nigdy nie chcesz
rm
być interaktywny, ale nadal chcesz obsługiwać błędy.Podsumowanie: w użyciu w wierszu poleceń
rm -rf
. w użyciu skryptówrm -r --interactive=never
.odpowiedź na zadane pytanie („Jak uniknąć konieczności wielokrotnego wydawania„ y ”podczas usuwania chronionego pliku”) patrz https://askubuntu.com/questions/338857/automatically-enter-input-in-command-line / 338860 # 338860
źródło
po prostu daj tak wszystkim swoim poleceniom!
W każdym razie zawsze możesz wymusić, używając
-f
:źródło
Ja też wpadłem na ten sam problem. Powyższa odpowiedź dotyczy tylko jednego pliku, ale jeśli chcesz zignorować wiele „tak”.
Możesz użyć
aby usunąć wszystkie zwykłe pliki chronione przed zapisem
źródło