我需要创建目录树的克隆,以便清理重复文件。
我不需要文件的副本,我只需要文件,所以我想创建一个带有硬链接的匹配树。
当我意识到我的备份需要几个小时时,我在几分钟内把它放在一起
它只是回显我重定向到文件以在运行之前检查的命令。
当然,通常的问题,例如包含引号或逗号的文件和目录尚未得到解决(bash 脚本很糟糕,不是吗,这个和包含前导破折号的文件)
是不是有一些实用程序已经以强大的方式做到了这一点?
BASEDIR=$1
DESTDIR=$2
for DIR in `find "$BASEDIR" -type d`
do
RELPATH=`echo $DIR | sed "s,$BASEDIR,,"`
DESTPATH=${DESTDIR}/$RELPATH
echo mkdir -p \"$DESTPATH\"
done
for FILE in `find "$BASEDIR" -type f`
do
RELPATH=`echo $FILE | sed "s,$BASEDIR,,"`
DESTPATH=${DESTDIR}/$RELPATH
echo ln \"$FILE\" \"$DESTPATH\"
done