我想将源的一部分复制到目的地:
SRC_DIR=/a/b/c/d/e
DEST_DIR=/x/y/z/d/e
当我的脚本启动时,我在以下位置创建所有文件夹$DEST_DIR
:
mkdir -pv /x/y/z/d/e
我有一个来自源的相对路径列表,它们是e
我要复制的第一个子路径。该列表是根据 find 命令的输出构建的,如下所示:
/USER_CONFIG_COPY/G731GV/REAL/2023_06_17_22h11/user_install/root
....
....
/002_DATA/SSH/2023_09_01.prev/root
....
....
....
/002_DATA/USER_CONFIG_INITIAL/root
....
....
....
....
/001_SCRIPTS/000_TOOLS/root
....
....
为了构建包含列表,我首先放置父文件夹,然后放置从查找输出获取的列表。所以列表看起来像这样:
/a
/a/b
/a/b/c
/a/b/c/d
/a/b/c/d/e
/USER_CONFIG_COPY/G731GV/REAL/2023_06_17_22h11/user_install/root
....
....
/002_DATA/SSH/2023_09_01.prev/root
....
最终的命令是:
rsync -arzh -vvv --include='/tmp/000_my_include_root_dirlist.txt' --exclude='*' "$SRC_DIR/" "$DST_DIR/"
我尝试了 U&L Stack Exchange 上找到的许多技巧,但没有成功。我究竟做错了什么?
好吧,克里斯的建议适用于一小部分文件夹。我的问题来自于缺少 --recursive 选项和在文件夹上使用粘性位的问题。我要做一个完整的测试。我尽快发布消息。