sh中直接合并目录

sh/bash/dash/ksh/zsh等Shell脚本
回复
gududehuo
帖子: 92
注册时间: 2008-05-25 22:58
送出感谢: 0
接收感谢: 1 次

sh中直接合并目录

#1

帖子 gududehuo » 2009-03-16 15:31

图像界面中可以直接合并目录,但好像没有直接在shell中合并目录的命令,baidu也找不到,就只能自己动手(自己动手丰衣足食 :em05
#!/bin/bash
#带目录结构整体转移目标目录内的目录和文件到另一个目录
dirprocess () {
regulartargetdir=$(echo "$targetdir" | sed 's/\//\\\//g;s/\-/\\\-/' )
cd "$1"
for m in "$1"/*
do
[ -f "$m" ] && dirname=$(dirname "$m" | sed "s/"$regulartargetdir"//") && mkdir -p "$mvtodir"/"$dirname" && cp -f "$m" "$mvtodir"/"$dirname"/
[ -d "$m" ] && dirprocess "$m"
done
}

read -p 输入要合并的目录: targetdir
read -p 输入要并入的目录: mvtodir
[ ! -d "$mvtodir" ] && mkdir -p "$mvtodir"
for i in "$targetdir"/*
do
[ -f "$i" ] && cp -f "$i" "$mvtodir"/
[ -d "$i" ] && dirprocess "$i"
done
功能很简单就是“要合并的目录”中内容代目录结构复制到“要并入的目录”,覆盖同名文件。我自己使用cp,你可以改成mv。
功能简单请不要见笑 :em06 :em06
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: sh中直接合并目录

#2

帖子 eexpress » 2009-03-16 15:46

看着就没排错的句子。
● 鸣学
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30
送出感谢: 2 次
接收感谢: 31 次

Re: sh中直接合并目录

#3

帖子 aerofox » 2009-03-16 22:41

跟 cp -r 有什么区别?
回复

回到 “Shell脚本”