在 Linux 中,cp -r 命令用于递归地复制目录及其内容。如果你想使用 cp -r 遍历目录并复制文件,你可以结合使用 for 循环和通配符。以下是一个示例:
#!/bin/bash
# 源目录
src_dir="/path/to/source/directory"
# 目标目录
dest_dir="/path/to/destination/directory"
# 遍历源目录中的所有子目录
for dir in "$src_dir"/*/; do
# 获取子目录名称(去掉路径部分)
dir_name=$(basename "$dir")
# 创建目标目录中的相应子目录(如果不存在)
mkdir -p "$dest_dir/$dir_name"
# 复制子目录及其内容到目标目录
cp -r "$dir"/* "$dest_dir/$dir_name"
done
将此脚本保存为 copydir.sh,并使用 chmod +x copydir.sh 命令使其可执行。然后,通过运行 ./copydir.sh 来执行脚本。
请注意,这个脚本假设源目录和目标目录已经存在。如果它们不存在,请先创建它们。此外,这个脚本不会处理源目录中的符号链接。如果你需要处理符号链接,可以使用 find 命令结合 -exec 选项来实现。