这是一个我需要解决方案的问题:
说文件A包含文件B,C,D的名称。文件B包含文件名E,F,G等。文件C包含文件H,I,J等的名称......
我必须解析从A开始的文件,并将A中提到的文件复制到dir DIR中。我想对所有子文件B,C,D进行相同的解析,并将他们的子文件放入我的dir DIR中。这应该继续,直到我到达最后一个文件说Z不包含任何其他文件名。
我该怎么做?
我想在一个脚本中完成整个过程,任何进一步的优化都将受到赞赏。
提前致谢。
答案 0 :(得分:0)
如果文件包含除文件名之外的其他数据,则可能需要进行更多解析。
DIR="$HOME/DIR"
startfile="a"
counter=0
copy_to_dir ()
{
while read line ; do
if [ -f "$line" ] ; then
cp "$line" "$2" && ((counter++))
copy_to_dir "$line" "$2" # recurse
fi
done < "$1"
} # ---------- end of function copy_to_dir ----------
if [ -f "$startfile" -a -d "$DIR" ] ; then
copy_to_dir "$startfile" "$DIR" # start copying
fi
printf "'%s' : %d files copied to '%s'\n" "$0" $counter "$DIR"