使用 SSH 命令行,我需要删除所有以点 (.) 开头的文件,但我不想删除 .htaccess 文件。
我到目前为止尝试过像这样列出它们
find . -type f -name ".*"
它正确列出了所有文件。但 .htaccess 也在那里。谢谢
答案1
您可以使用!
(或者,在 GNU 中find
,-not
)逻辑地反转测试。来自man find
:
! expr True if expr is false. This character will also usually need
protection from interpretation by the shell.
-not expr
Same as ! expr, but not POSIX compliant.
所以
find . -type f -name ".*" ! -name .htaccess
或者
find . -type f -name ".*" -not -name .htaccess
例如给定
$ find . -type f -name ".*"
./.bar
./.baz
./.foo
./.htaccess
然后
$ find . -type f -name ".*" ! -name .htaccess -delete
离开
$ find . -type f -name ".*"
./.htaccess