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?
rm -f ./*
. Domyślnierm
nie pyta o nic, chyba że nie masz uprawnień do zapisu do pliku. Może maszalias rm='rm -i'
setopt rmstarsilent
Odpowiedzi:
Komunikat „zsh: na pewno chcesz usunąć wszystkie pliki” to funkcja zsh, która jest wywoływana przez wywołanie polecenia wywołanego
rm
z argumentem, który jest*
lubsomething/*
przed rozszerzeniem globalnym. Możesz to wyłączyć za pomocąsetopt rm_star_silent
.Komunikat „rm: remove regular file” pochodzi z samego
rm
polecenia. Domyślnie nie pojawia się, pojawia się tylko porm
wywołaniu z opcją-i
. Jeśli nie chcesz tej wiadomości, nie przepuszczaj tej opcji. Nawet bez-i
,rm
monituje 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ś
-i
wiersza poleceń,rm
jest to prawdopodobnie aliasrm -i
(może to być również funkcja, niestandardowe polecenie otoki lub inny alias, ale aliasrm -i
jest 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ą~/.zshrc
definicję aliasu dlarm
. Jeśli znajdziesz, usuń go. Jeśli go nie znajdziesz, dodaj polecenie, aby usunąć alias:źródło
Wydaje się, że poprawne polecenie wyłączenia podwójnej weryfikacji
setopt rm_star_silent
. Aby włączyć podwójną weryfikację, wykonajsetopt no_rm_star_silent
.Aby uzyskać bardziej szczegółowe informacje, zajrzyj na stronę man dla zshoptions
man zshoptions
lub http://linux.die.net/man/1/zshoptionsźródło
unsetopt rm_star_silent
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
źródło