当前位置: 首页 > news >正文

linux下建立软链接

深度学习训练中经常会遇到数据量庞大或者工程中模型报错太多导致磁盘空间不够,但是又不想修改原来在代码中写的路径,这个时候制作软连接很有作用,把占用量大的目录移到别的空闲磁盘,然后在原来的目录做一个软连接指向那个移到的空闲磁盘路径即可;软连接不占用磁盘空间,还可以两边同步修改。

命令:ln -s 源路径 目标路径
比如:ln -s /home/nvme0n1/biorec229/disk_nvme1n1_dataset/lishanlu_workspace/mytest /home/nvme0n1/biorec229/lishanlu/project/mytest就是将后面的路径指向前面的源路径,打开后面路径文件夹mytest,会跳转到前面路径的mytest。

这里要吐槽一下,网上很多文章没写仔细,文件夹路径到底要不要加"/",到底要不要自己创建,都有很大的区别,我自己在这里踩了坑,所以记录一下:

1、目标文件夹mytest不存在的时候,建立软链接的时,目标文件夹后面加"/"是不行的
在这里插入图片描述

2、目标文件夹mytest不存在的时候,建立软链接的时,源文件夹后面加"/“或者不加”/"都是可行的,都能达到自动创建目标链接mytest指向源路径目录的目的。这也是推荐的方式ln -s a b,要想达到b指向a,那么源路径a文件夹存在,b不能存在。
在这里插入图片描述
在这里插入图片描述

3、目标文件夹mytest存在时候,建立软链接时,源文件夹后面加"/“或者不加”/“,目标文件夹后面加”/“或者不加”/"都是可行的,但是会在目标文件夹mytest里面创建软链接
在这里插入图片描述

#运行下面4条命令都会在目标文件夹mytest里面创建软链接
ln -s /home/nvme0n1/biorec229/disk_nvme1n1_dataset/lishanlu_workspace/mytest/ /home/nvme0n1/biorec229/lishanlu/project/mytest
ln -s /home/nvme0n1/biorec229/disk_nvme1n1_dataset/lishanlu_workspace/mytest /home/nvme0n1/biorec229/lishanlu/project/mytest
ln -s /home/nvme0n1/biorec229/disk_nvme1n1_dataset/lishanlu_workspace/mytest/ /home/nvme0n1/biorec229/lishanlu/project/mytest/
ln -s /home/nvme0n1/biorec229/disk_nvme1n1_dataset/lishanlu_workspace/mytest /home/nvme0n1/biorec229/lishanlu/project/mytest/

在这里插入图片描述

4、删除软链接
cd到软链接目录,直接rm 目标目录即可。
比如:cd /home/nvme0n1/biorec229/lishanlu/project && rm mytest
可以看到即使软链接指向的源路径是一个目录,目标文件夹也不是目录,是一个链接,所以删除用rm,就可以
在这里插入图片描述


注意:网上都说删除软链接目录,后面不能加"/",我试了一下会报错,因为mytest/是一个文件夹,我用rm命令删除是不成功的
在这里插入图片描述
命令执行失败,软链接还在,目录里面的东西也还在
在这里插入图片描述

但是如果我用rm -rf test/命令,则会执行成功,而且会把软链接目录里面的东西删除掉,由于两边是同步操作,源路径里面的东西也会被删除
在这里插入图片描述

http://www.lryc.cn/news/462007.html

相关文章:

  • MySql数据库left join中添加子查询
  • redis--过期策略和内存淘汰策略
  • qt QTableview 左侧 序号 倒序
  • 隧道代理IP如何帮助企业采集数据?
  • Spring Boot知识管理系统:技术与方法论
  • SpringBoot1~~~
  • 兼容多家品牌手机的多协议取电快充芯片
  • Java和Python的不同
  • Moshang摩熵医药数据库
  • 基于web的酒店客房管理系统【附源码】
  • 潜水定位通信系统的功能和使用方法_鼎跃安全
  • Golang | Leetcode Golang题解之第477题汉明距离总和
  • JavaWeb——Maven(1/8):整体介绍(什么是Maven、Maven的作用、小结)
  • Vivado 跟Xilinx SAE学HLS系列-高亚军(复合数据类型)
  • 【mysql】WITH AS 语法详解
  • Rocky linux SSD安装
  • 在 Linux 系统中设置 Service 服务开机自启的详细指南
  • Flythings学习(四)串口通信
  • [数据结构]带头双向循环链表的实现与应用
  • 商品详情数据API接口开发系列(属性规格详情图sku等)
  • 在 Ubuntu 上安装 clang-format-14
  • 【优选算法篇】双指针的华丽探戈:深入C++算法殿堂的优雅追寻
  • 【springboot入门-mvc常用注解使用方式及原理】
  • 滚雪球学Redis[4.2讲]:Redis Sentinel 深度解析:工作原理、配置与高可用架构下的故障转移
  • Vue3 -- 设置分页,切换分页之后选项仍能保留 控制多个表格的选中不会互相影响
  • 如何在 JSON 中编写“anyOf”语句?
  • python开发环境配置
  • QT开发--QT SQL模块
  • 如何保证接口幂等性?
  • 【9718】基于springboot+vue的生鲜交易系统