Podwójna weryfikacja RM w Zsh

15

Kiedy robię RM * w Zsh, otrzymuję coś takiego:

2014-06-08 10:14:23 $ rm *
zsh: sure you want to delete all the files in /home/assay/assay/log [yn]? y
rm: remove regular file `development.log'? y

Najpierw zsh pyta mnie, czy jestem pewien, że chcę usunąć wszystko, a następnie rm prosi o każdy konkretny plik.

Jak mogę po prostu zweryfikować Zsh?

ardochhigh
źródło
3
Zastosowanie rm -f ./*. Domyślnie rmnie pyta o nic, chyba że nie masz uprawnień do zapisu do pliku. Może maszalias rm='rm -i'
Stéphane Chazelas
Och, to musi być to - uruchamiam usuwanie z powłoki Vagrant, a pliki są hostowane w systemie plików laptopa. Dzięki
ardochhigh
2
Tylko uwaga, zsh wciąż wyświetla komunikat „rm -rf *”, można to wyłączyć za pomocąsetopt rmstarsilent
Matt

Odpowiedzi:

29

Komunikat „zsh: na pewno chcesz usunąć wszystkie pliki” to funkcja zsh, która jest wywoływana przez wywołanie polecenia wywołanego rmz argumentem, który jest *lub something/*przed rozszerzeniem globalnym. Możesz to wyłączyć za pomocą setopt rm_star_silent.

Komunikat „rm: remove regular file” pochodzi z samego rmpolecenia. Domyślnie nie pojawia się, pojawia się tylko po rmwywołaniu z opcją -i. Jeśli nie chcesz tej wiadomości, nie przepuszczaj tej opcji. Nawet bez -i, rmmonituje o potwierdzenie (z inną wiadomością), jeśli spróbujesz usunąć plik tylko do odczytu; możesz usunąć to potwierdzenie, przekazując opcję -f.

Ponieważ nie przekazałeś -iwiersza poleceń, rmjest to prawdopodobnie alias rm -i(może to być również funkcja, niestandardowe polecenie otoki lub inny alias, ale alias rm -ijest zdecydowanie najbardziej prawdopodobny). Niektóre domyślne konfiguracje obejmują alias rm='rm -i'pliki inicjalizacji powłoki; może to być coś, co skonfigurowała Twoja dystrybucja lub administrator systemu, lub coś, co skądś wziąłeś i dodałeś do pliku konfiguracyjnego, a następnie zapomniałeś. Sprawdź swoją ~/.zshrcdefinicję aliasu dla rm. Jeśli znajdziesz, usuń go. Jeśli go nie znajdziesz, dodaj polecenie, aby usunąć alias:

unalias rm
Gilles „SO- przestań być zły”
źródło
6

Wydaje się, że poprawne polecenie wyłączenia podwójnej weryfikacji setopt rm_star_silent. Aby włączyć podwójną weryfikację, wykonaj setopt no_rm_star_silent.

Aby uzyskać bardziej szczegółowe informacje, zajrzyj na stronę man dla zshoptions man zshoptionslub http://linux.die.net/man/1/zshoptions


źródło
lubunsetopt rm_star_silent
evandrix
1

Jeśli używasz oh-my-zsh, wtyczka common-aliasses zawiera alias rm -i.

https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/common-aliases/common-aliases.plugin.zsh

woohoou
źródło
1
Chociaż ten link może odpowiedzieć na pytanie, lepiej dołączyć tutaj istotne części odpowiedzi i podać link w celach informacyjnych. Odpowiedzi zawierające tylko łącze mogą stać się nieprawidłowe, jeśli połączona strona ulegnie zmianie. - Z recenzji
jayhendren,
@jayhendren - to nie jest link do dokumentacji, to link do czegoś, co należy zainstalować, aby rozwiązać problem ...
Wouter Verhelst