我的脚本应检查一个名为/ etc / scriptbuilder / default / contents的目录,该目录将包含一些目录,如果内容目录中的目录与项目目录中的目录匹配,则目录目录中的文件应复制到项目目录中(因此,如果/ etc / scriptbuilder / default / contents / docs和/ project / docs都存在,则应复制/ etc / scriptbuilder / default / contents / docs的内容。)
我在进行这项工作时遇到了麻烦。它必须找到相同目录名称的匹配项,如果目录名称相同,则将内容从目录复制到项目目录。这是我到目前为止的内容:
#! /bin/bash
if [ -d "$/etc/scriptbuilder/default/contents ]; then
if [[ "/etc/scriptbuilder/default/contents" =~ name ]]; then
cp -a #I'm not sure how to copy and check for the name on the project
directory
fi
fi
答案 0 :(得分:0)
类似的东西会找到您要查找的目录并打印出来。
source="/etc/scriptbuilder/default/contents"
destination="/home/something/project"
# loop the directories of the source folder
cd "$source"
for name in */ ; do
# create the source and the possible destination directory paths
s="$source/$name"
d="$destination/$name"
# check if the directory exists in the project
if [ -d "$d" ]; then
echo "TODO: Perfrom copy of from $s to $d"
fi
done
如果您需要复制命令方面的帮助,请同时发表评论。
答案 1 :(得分:0)
使用循环可能是这样的:
Dir1=path_to_contents/contents
Dir2=path_to_project/project
for i in $(find "$Dir1/" "$Dir2/" -printf '%P\n' | sort | uniq -d)
do
cp -r $Dir1/$i $Dir2
done