如何搜索/列出所有以点 (.) 开头的文件,但 .htaccess 不包含在列表中

如何搜索/列出所有以点 (.) 开头的文件,但 .htaccess 不包含在列表中

使用 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

相关内容