linux find命令

发布于:2024-04-25 ⋅ 阅读:(17) ⋅ 点赞:(0)

随笔小计

1. 排除指定目录

find /www/wwwroot/www.boke.com/test -type d -name 'app' -prune -o -exec chown www:www {} +

这个命令的解释如下:

  • find /www/wwwroot/www.boke.com/test:在/www/wwwroot/www.boke.com/test目录及其子目录中查找文件或目录。

  • -type d:只查找目录。

  • -name 'app':只查找名为’app’的目录。

  • -prune:如果找到了名为’app’的目录,就不再查找这个目录的子目录。

  • -o:逻辑或操作符,表示如果前面的条件(-name 'app' -prune)不满足,就执行后面的操作(-exec chown www:www {} +)。

  • -exec chown www:www {} +:对找到的文件或目录执行chown www:www命令,将它们的所有者改为’www’,所属组也改为’www’。这里的{}代表find命令找到的文件或目录,+表示将多个文件或目录作为chown命令的参数。

总的来说,这个命令的作用是:在/www/wwwroot/www.boke.com/test`目录及其子目录中,将除了名为’app’的目录及其子目录以外的所有文件或目录的所有者和所属组都改为’www’。

2.排除指定文件

find /www/wwwroot/www.boke.com/test -type f ! -name '2.txt' -exec chown www:www {} +

这个命令的解释如下:

  • find /www/wwwroot/www.boke.com/test:在/www/wwwroot/www.boke.com/test目录及其子目录中查找文件或目录。
  • -type f:只查找文件。
  • ! -name '2.txt':排除名为’2.txt’的文件。
  • -exec chown www:www {} +:对找到的文件执行chown www:www命令,将它们的所有者改为’www’,所属组也改为’www’。这里的- {}代表find命令找到的文件或目录,+表示将多个文件作为chown命令的参数。

总的来说,这个命令的作用是:在/www/wwwroot/www.boke.com/test`目录及其子目录中,将除了名为’2.txt’的文件以外的所有文件的所有者和所属组都改为’www’。

请注意,这个命令只会更改文件的所有权,不会更改目录的所有权。如果你也想更改目录的所有权,可以省略 -type f 选项。

3.排除多个文件

此外,如果你想要排除多个文件,你可以使用多个 ! -name 条件,并用圆括号 () 和 -and 连接它们,例如:

find /www/wwwroot/www.boke.com/test -type f \( ! -name '1.txt' -and ! -name '2.txt' \) -exec chown www:www {} +