根據已有目錄結構從目標目錄中提取
阿新 • • 發佈:2020-10-13
echo $# if [ $# -lt 2 ]; then echo "input basis folder base:" read src echo "input target folder base:" read target echo "input output folder base:" read output else src=$1 target=$2 output=$3 fi echo "input param: "$src" "$target" "$output if [ ! -d "$src" ]; thenecho "invalid src folder" exit 1 fi if [ ! -d "$target" ]; then echo "invalid target folder" exit 2 fi if [ ! -d "$output" ]; then mkdir -p "$output" fi function extract(){ targetFile=${1#*/} targetFile=${targetFile#*/} # echo "coping "$targetFile" to "$output"/"$targetFileif [ -f $target"/"$targetFile ]; then # echo "coping "$target"/"$targetFile" to "$output"/"$targetFile cp --preserve $target"/"$targetFile $output"/"$targetFile fi } function extractFolder(){ targetFile=${1#*/} targetFile=${targetFile#*/} # echo "coping "$targetFile" to "$output"/"$targetFile if [ -d $target"/"$targetFile ]; then echo "creating folder "$target"/"$targetFile" to "$output"/"$targetFile mkdir -p $output"/"$targetFile fi } function read_dir(){ for file in `ls $1` do if [ -d $1"/"$file ] then extractFolder $1"/"$file read_dir $1"/"$file else #echo "dealing file "$1"/"$file extract $1"/"$file fi done } read_dir $src
./extract.sh ./BuildRoot ./b7r6 ./output