文章资料-情感.机器.认知-电子AI 游客
226 linux 拷贝文件带文件夹名,有6万个名单,怎么写脚本 2025-07-10 11:32:11 2025-07-10 11:32:11

linux 拷贝文件带文件夹名,有6万个名单,怎么写脚本

DeepSeek-R1 回答完成

对于需要拷贝大量文件并保留文件夹结构的场景,可以使用rsync命令配合脚本处理。以下是解决方案:

copy_with_structure.sh

已完成

使用说明:

  1. 将6万个文件名保存到file_list.txt中,每行一个相对路径

  2. 修改SOURCE_DIR和TARGET_DIR变量为实际路径

  3. 脚本会保留原始目录结构拷贝文件

替代方案:如果文件都在同一目录下,可以使用更简单的xargs方案:

simple_copy.sh

已完成

注意事项:处理大量文件时建议先在测试环境验证,注意磁盘空间和权限问题。

能否给出xargs脚本的详细解释?


#!/bin/bash


# 源目录和目标目录

SOURCE_DIR="/path/to/source"

TARGET_DIR="/path/to/destination"


# 检查文件列表是否存在

if [ ! -f "file_list.txt" ]; then

    echo "错误:file_list.txt 文件不存在"

    exit 1

fi


# 使用rsync按列表拷贝文件并保留目录结构

while IFS= read -r filepath; do

    # 确保文件存在

    if [ -e "$SOURCE_DIR/$filepath" ]; then

        rsync -R "$SOURCE_DIR/./$filepath" "$TARGET_DIR"

    else

        echo "警告:文件不存在 - $filepath"

    fi

done < "file_list.txt"


echo "拷贝完成"