Bash 如何使用shell命令一次创建指向多个目录的符号链接
我有一个htaccess文件,我想在大约60个其他目录中为它创建一个符号链接。我怎样才能在一行中做到这一点,而不是重复60次 示例:Bash 如何使用shell命令一次创建指向多个目录的符号链接,bash,shell,Bash,Shell,我有一个htaccess文件,我想在大约60个其他目录中为它创建一个符号链接。我怎样才能在一行中做到这一点,而不是重复60次 示例:.htaccess文件位于目录public\u html/directory/website\u 1/ 我想在以下位置创建它的符号链接: public_html/directory/website_2/ public_html/directory/website_3/ public_html/directory/website_4/ public_html/dire
.htaccess
文件位于目录public\u html/directory/website\u 1/
我想在以下位置创建它的符号链接:
public_html/directory/website_2/
public_html/directory/website_3/
public_html/directory/website_4/
public_html/directory/website_5/
但是目录不是那样编号的。举个例子。我要将符号链接复制到的所有目录都位于一个名为public\u html/directory/
的主目录中,其中website\u 1和website\u 2
etc
等等
我在用油灰
这就是我目前创建符号链接的方式
ln -s ~/public_html/directory/website_1/.htaccess ./website_2/.htaccess
然后我必须重做这一行,但将网站2
更改为网站3
,以此类推60次。您不能直接更改。
然后您必须创建一个,将其复制到多个目标。
但要复制到多个目的地,您必须在每个目的地使用cp-s
(-s
创建符号链接,而不是复制源代码)一次
正确的方法是创建shell脚本,以便在创建第一个符号链接后在目标上循环
对于循环,您需要一个
:
for dir in ./website_*
do
[ "$dir" = "./website_1" ] && continue # Skip the master file
ln -s ~/public_html/directory/website_1/.htaccess "$dir"
done
我认为没有更快的方法(除非您使用Perl脚本来完成这项工作,或者使用Python——但可能会涉及到更多的调试)。您可以尝试以下一行代码:
cd-public\u html/目录;因为我在*;do ln-s/.htaccess“$i”/.htaccess;完成
cp
在这里可能不是一个好方法;它不会创建符号链接,但会复制符号链接指向的材料;do ln-s/.htaccess“$i”/.htaccess;完成
,然后得到大约60次响应-bash:/.htaccess:权限被拒绝
。master.htaccess文件位于/directory中的airsahara中,该目录位于public\u html/目录的主目录中,所有其他目录都位于该目录中。我正在尝试为其创建符号链接。这成功了。我必须使用通配符*像这样来表示dir in./*-*do
,因为在每个目录中都有一个-
。