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