网站建设服务器域名欧美网站设计欣赏
根据您的需求,您希望递归搜索 cmake_out 目录下任意路径中所有以 vela 开头的 .bin 文件,并将它们拷贝到当前目录下的 nuttx 目录。使用 fd 命令可以这样实现:
mkdir -p nuttx && fd -t f -e bin '^vela' ./cmake_out -x cp -v {} ./nuttx
命令详解:
-
创建目标目录:
mkdir -p nuttx -
搜索并拷贝文件:
fd -t f -e bin '^vela' ./cmake_out -x cp -v {} ./nuttx-t f:只搜索文件(排除目录)-e bin:只匹配扩展名为.bin的文件'^vela':使用正则表达式匹配以vela开头的文件名./cmake_out:搜索起始目录-x cp -v {} ./nuttx:对每个匹配文件执行拷贝-v:显示拷贝详情(可选,但推荐用于确认操作){}:自动替换为找到的文件路径
根据您的目录结构优化:
从您的 ll 输出可以看出,文件大多在二级目录(如 p62_ap/、p62_audio/ 等)中。如果不需要递归搜索所有子目录,可以限制搜索深度:
# 只搜索二级目录(推荐)
fd -t f -e bin '^vela' -d 2 ./cmake_out -x cp -v {} ./nuttx
-d 2:限制搜索深度为 2 级目录(即cmake_out/一级目录/文件)
预期匹配的文件:
根据您的 ll 输出,这个命令将匹配:
cmake_out/p62_ap/vela_ap.bin
cmake_out/p62_audio/vela_audio.bin
cmake_out/p62_audio/vela_audio_image.bin
cmake_out/p62_bootloader2/vela_bl2.bin
cmake_out/p62_cp/vela_cp.bin
cmake_out/p62_cp/vela_cp_image.bin
cmake_out/p62_ota/vela_ota.bin
cmake_out/p62_sensor/vela_sensor.bin
注意事项:
- 文件名冲突:如果不同目录有同名文件(如多个
vela_audio.bin),后拷贝的会覆盖前面的 - 大小写敏感:默认大小写不敏感,如需严格匹配小写
vela,添加-s参数:fd -s -t f -e bin '^vela' ./cmake_out -x cp {} ./nuttx - 预览结果:先运行不带
-x的部分确认匹配的文件:fd -t f -e bin '^vela' ./cmake_out
完整命令(推荐带确认):
# 1. 预览匹配的文件
echo "将拷贝以下文件:" && fd -t f -e bin '^vela' -d 2 ./cmake_out# 2. 实际执行拷贝
mkdir -p nuttx && fd -t f -e bin '^vela' -d 2 ./cmake_out -x cp -v {} ./nuttx
这个命令会:
- 精确匹配以
vela开头的.bin文件 - 限制在二级目录内搜索(根据您的目录结构优化)
- 显示拷贝详情(
-v参数) - 自动创建目标目录(
mkdir -p)
