需求:从 /home/majn/llvm_project/extract_main
路径下复制前500个 .c
文件到 /home/majn/llvm_project/extract_main_500
目录。
以下是一个用于实现该功能的 Bash 脚本。
#!/bin/bash# 源目录和目标目录
SOURCE_DIR="/home/majn/llvm_project/extract_main"
TARGET_DIR="/home/majn/llvm_project/extract_main_500"# 创建目标目录,如果它还不存在
mkdir -p "$TARGET_DIR"# 初始化文件计数器
counter=0# 切换到源目录
cd "$SOURCE_DIR" || exit 1# 遍历源目录下的 .c 文件
for c_file in *.c; do# 如果已经复制了 500 个文件,就退出循环if [ "$counter" -ge 500 ]; thenbreakfi# 复制文件到目标目录cp "$c_file" "$TARGET_DIR/"# 更新计数器counter=$((counter + 1))
done# 输出完成的信息
echo "Copied $counter .c files from $SOURCE_DIR to $TARGET_DIR."
保存这个脚本到一个文件,比如叫做 copy_files.sh
。
接着,给这个脚本文件添加执行权限:
chmod +x copy_files.sh
最后,运行这个脚本:
./copy_files.sh
该脚本将:
- 定义源目录和目标目录。
- 使用
mkdir -p
创建目标目录(如果还不存在)。 - 切换到源目录。
- 使用
for
循环遍历源目录中的.c
文件。 - 使用
cp
命令将每个.c
文件复制到目标目录。 - 更新一个计数器来跟踪已复制的文件数量。
- 如果已经复制了500个文件,就退出循环。
注意:请确保脚本有足够的权限来访问和操作这些目录和文件。