我想在所有上传文件中制作一个.htaccess文件。服务器上的目录。
我从这开始:
find / -type d -name 'uploads'
我得到了一个包含上传目录的所有目录的长列表。
现在我想在其中使用以下内容创建一个.htaccess文件:
Order deny,allow
Deny from all
<FilesMatch "\.(jpg|gif|png)$">
Order Deny,Allow
Allow from all
</FilesMatch>
有人可以帮忙吗?
答案 0 :(得分:0)
如果你使用bash作为你的shell,你可以这样做:
cat > /path/to/.htaccess <<EOF
Order deny,allow
Deny from all
<FilesMatch "\.(jpg|gif|png)$">
Order Deny,Allow
Allow from all
</FilesMatch>
EOF
cat
命令将其输入复制到其输出。在这种情况下,它的输出由>
后面的文件名确定;换句话说,它是您要编写的.htaccess
文件的完整路径。
<<EOF
表示cat
应该从后面的内容中获取输入,直到它再次遇到字符串EOF
。这就是为什么EOF
会再次出现在要复制到文件中的输入的末尾。
一旦您创建了此文件,您可以使用find
将其复制到所需的任何位置,使用-exec
开关,如果这是什么你想要的。
答案 1 :(得分:0)
Find可用于在特定路径下的每个目录的上下文中执行命令。
以下命令会将模板.htaccess复制到与查找条件匹配的每个目录中。您必须创建.htaccess.template并在以下命令中修改它的路径:
find / -type d -name 'uploads' -exec cp /home/user/.htaccess.template {}/.htaccess \;
答案 2 :(得分:0)
for i in `find / -type d -name 'uploads'`
do
touch $i/.htaccess
echo "Order deny,allow\nDeny from all\n<FilesMatch "\.(jpg|gif|png)$">\nOrder Deny,Allow\n\tAllow from all\n</FilesMatch>">.htaccess
done