You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Linux中批量为CSV文件内的目录创建软链接至/data/test

批量创建软链接解决方案

前置准备

  1. 确认目标目录/data/test存在,若不存在先创建:
    mkdir -p /data/test
    
  2. 假设你的CSV文件名为dirs.csv,放在当前工作目录下。

方案一:Bash循环处理(直观易调试)

跳过CSV表头,逐行读取目录路径并创建软链接:

tail -n +2 dirs.csv | while read -r dir_path; do
  # 先检查源目录是否存在
  if [ -d "$dir_path" ]; then
    # 获取目录绝对路径,避免相对路径导致软链接失效
    abs_path=$(realpath "$dir_path")
    # 提取目录名作为软链接名称
    link_name=$(basename "$dir_path")
    # 创建软链接
    ln -s "$abs_path" "/data/test/$link_name"
    echo "已创建: /data/test/$link_name -> $abs_path"
  else
    echo "跳过: 目录 $dir_path 不存在"
  fi
done

方案二:Awk命令处理(简洁高效)

用Awk一次性完成读取、判断和创建操作:

awk 'NR>1 {
  # 获取目录绝对路径
  cmd = "realpath \"" $0 "\""
  cmd | getline abs_path
  close(cmd)
  # 检查目录是否存在
  if (system("[ -d \"" abs_path "\" ]") == 0) {
    split($0, parts, "/")
    link_name = parts[length(parts)]
    system("ln -s \"" abs_path "\" /data/test/\"" link_name "\"")
    print "已创建: /data/test/" link_name " -> " $0
  } else {
    print "跳过: 目录 " $0 " 不存在"
  }
}' dirs.csv

验证结果

执行完命令后,查看软链接状态:

ls -l /data/test

关键注意事项

  • 确保你对源目录有读取权限,对/data/test有写入权限
  • 如果系统没有realpath命令,可替换为readlink -f
  • 脚本已处理路径包含空格的情况,无需额外转义

内容的提问来源于stack exchange,提问作者Wilson Souza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 18:55:27