Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux:查找目录并在其中创建文件_Linux_.htaccess_Directory_Find - Fatal编程技术网

Linux:查找目录并在其中创建文件

Linux:查找目录并在其中创建文件,linux,.htaccess,directory,find,Linux,.htaccess,Directory,Find,我想在服务器上的所有“上载”目录中创建一个.htaccess文件 我从这个开始: find / -type d -name 'uploads' 我得到了一个很长的目录列表,其中有一个上传目录 现在,我想在其中创建一个包含以下内容的.htaccess文件: Order deny,allow Deny from all <FilesMatch "\.(jpg|gif|png)$"> Order Deny,Allow Allow from all </FilesMatch&

我想在服务器上的所有“上载”目录中创建一个.htaccess文件

我从这个开始:

find / -type d -name 'uploads'
我得到了一个很长的目录列表,其中有一个上传目录

现在,我想在其中创建一个包含以下内容的.htaccess文件:

Order deny,allow
Deny from all
<FilesMatch "\.(jpg|gif|png)$">
Order Deny,Allow
    Allow from all
</FilesMatch>
订单拒绝,允许
全盘否定
命令拒绝,允许
通融

有人能帮助plz吗?

如果您使用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>/path/to/.htaccessFind可用于在特定路径下每个目录的上下文中执行命令

以下命令将template.htaccess复制到与查找条件匹配的每个目录中。您必须创建.htaccess.template并在下面的命令中修改其路径:

find / -type d -name 'uploads' -exec cp /home/user/.htaccess.template {}/.htaccess \;
'find/-type d-name'uploads'中的i的
`
做
触摸$i/.htaccess
echo“Order deny,allow\ndey from all\n\nOrder deny,allow\n\tAllow from all”>.htaccess
完成

在这方面你需要相当小心。如果任何路径名中有空格,它将无法正常运行。
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