我想删除文件夹Dowloads
中除了文件夹no
的所有文件。所以我在zsh
中创建文件:
➜ Downloads touch abc.txt 1 2 3 4321 4 9; mkdir a b c no
➜ Downloads ls
1 2 3 4 4321 9 a abc.txt b c no
然后我尝试删除当前文件夹中的所有文件夹和文件,除了文件夹no
(而在zsh
):
➜ Downloads rm -rf -v !(no)
zsh: unknown sort specifier
然后切换到bash并尝试相同的命令:
➜ Downloads bash
vladyslav@kdeneonlinux:~/Downloads$ rm -rf -v !(no)
removed '1'
removed '2'
removed '3'
removed '4'
removed '4321'
removed '9'
removed directory 'a'
removed 'abc.txt'
removed directory 'b'
removed directory 'c'
vladyslav@kdeneonlinux:~/Downloads$ ls
no
vladyslav@kdeneonlinux:~/Downloads$ exit
exit
➜ Downloads ls
no
➜ Downloads
所以,在bash
中,它做了我希望它在zsh
中做的事情。为什么zsh
显示
zsh: unknown sort specifier
?
如何修复rm !(stuff)
工作在zsh
在bash
?
在zsh中,您可以使用
setopt extendedglob
rm *~no