【符号链接】【bash】遍历目录下的每个子项目

git_repos目录下的每个项目创建符号链接(软链接),需要遍历该目录下的每个子项目,并使用ln -s命令为它们分别创建链接。

1. 创建脚本文件

创建一个文本文件来编写你的脚本。这可以通过任何文本编辑器完成,比如nano, vim, 或是gedit等。

以gedit为例,在命令行运行以下命令来创建一个新的脚本文件

bash 复制代码
gedit git_repos_ln_script.sh

2. 编写脚本

bash 复制代码
#!/bin/bash

# 源目录,即包含git项目的目录
SOURCE_DIR=~/git_repos

# 目标目录,即你想在其中创建符号链接的地方
TARGET_DIR=~/catkin_ws_madar_robot/src/links

# 检查目标目录是否存在,如果不存在则创建
if [ ! -d "$TARGET_DIR" ]; then
    mkdir -p "$TARGET_DIR"
fi

# 遍历源目录下的每个项目
for project in "$SOURCE_DIR"/*; do
    project_name=$(basename "$project") # 提取项目名
    target_link="$TARGET_DIR/$project_name" # 目标链接路径

    # 检查是否已存在同名的链接或文件
    if [ -e "$target_link" ]; then
        echo "存在同名文件或链接:$target_link,将其移除."
        rm -rf "$target_link" # 强制移除文件或链接
    fi

    # 创建符号链接
    ln -s "$project" "$target_link"
    echo "已创建链接:$project -> $target_link"
done

echo "所有项目的符号链接已成功创建在 $TARGET_DIR"

3. 给脚本文件执行权限

bash 复制代码
chmod +x git_repos_ln_script.sh

4.运行脚本

在脚本文件所在的目录下,使用以下命令运行脚本:

bash 复制代码
./git_repos_ln_script.sh

Bash脚本可以包含任何在命令行中手动运行的命令。

通过在命令前加#来添加注释,以提高脚本的可读性。

相关推荐
代码中介商11 小时前
C++运行时多态深度解析:从原理到实践
开发语言·c++·多态·虚函数
额呃呃11 小时前
Andriod项目番茄钟
java·开发语言
Via_Neo11 小时前
不能对方法返回值进行赋值
开发语言·python
梅孔立11 小时前
Java 基于 POI 模板 Excel 导出工具类 双数据源 + 自动合并单元格 + 自适应行高 完整实战
java·开发语言·excel
代码中介商11 小时前
C++ 继承与派生深度解析:存储布局、构造析构与高级特性
开发语言·c++·继承·派生
我不是懒洋洋11 小时前
【经典题目】栈和队列面试题(括号匹配问题、用队列实现栈、设计循环队列、用栈实现队列)
c语言·开发语言·数据结构·算法·leetcode·链表·ecmascript
枫叶丹411 小时前
【HarmonyOS 6.0】ArkWeb PDF浏览能力增强:指定PDF文档背景色功能详解
开发语言·华为·pdf·harmonyos
谭欣辰11 小时前
C++ 控制台跑酷小游戏2.0
开发语言·c++·游戏程序
Huangxy__11 小时前
java相机手搓(后续是文件保存以及接入大模型)
java·开发语言·数码相机
刚子编程12 小时前
C#事务处理最佳实践:别再让“主表存了、明细丢了”的破事发生
开发语言·c#·事务处理·trycatch