创建source folder到target folder的symbolic link实现指定存储规则的方法
实现方法
核心逻辑是创建目录级符号链接,让source folder整体作为链接指向target folder,所有写入source folder的操作实际都会落到target folder中,source folder本身仅作为链接占位,不会存储实际数据。
Linux / macOS 环境
- 前置操作:如果source folder已经存在且有内容,先将source内的所有原有数据迁移到target folder中,再删除空的source folder,否则创建链接时会报错。
- 创建命令使用
ln,必须传入绝对路径避免跨场景访问时链接失效,语法如下:
ln -s /绝对路径/你的target_folder /绝对路径/你的source_folder
- 验证方式:执行
ls -l /路径/to/source_folder,输出中显示source_folder -> /路径/to/target_folder即创建成功。 - 效果测试:向source folder内新建任意文件/文件夹,在target folder下可直接看到实际存储的文件,source folder内仅保留链接引用,不会额外占用存储空间。
Windows 环境
两种常用终端的创建方式都需要以管理员身份运行终端:
命令提示符(CMD)
使用mklink命令,语法如下:
mklink /D C:\绝对路径\source_folder C:\绝对路径\target_folder
PowerShell
使用New-Item命令,语法如下:
New-Item -ItemType SymbolicLink -Path "C:\绝对路径\source_folder" -Target "C:\绝对路径\target_folder"
注意事项
- 不要使用递归删除命令(如
rm -rf)直接删除source folder,否则可能误删target folder内的实际数据。Linux/macOS下删除链接使用unlink /路径/to/source_folder,Windows下直接右键删除source链接即可,两种操作都不会影响target内的实际文件。 - 如果创建时提示文件已存在,确认source内数据已完成迁移后删除source文件夹,再重新执行创建命令即可。
内容的提问来源于stack exchange,提问作者Khaned
相关产品推荐
相关产品推荐

