随笔小计
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 {} +