54 lines
1.5 KiB
Markdown
54 lines
1.5 KiB
Markdown
---
|
|
obj: application
|
|
repo: https://codeberg.org/chrysn/unionfarm
|
|
rev: 2025-01-30
|
|
---
|
|
|
|
# unionfarm
|
|
This is a small utility for managing symlink farms. It takes a "farm" directory and any number of "data" directories, and creates (or updates) the union (or overlay) of the data directories in the farm directory by placing symlinks to data directories.
|
|
|
|
It is similar to
|
|
- union mounts (overlay/overlayfs) -- but works without system privileges; it is not live, but can then again err out on duplicate files rather than picking the highest ranking
|
|
|
|
Usage: `unionfarm <FARM> [DATA]...`
|
|
|
|
## Example
|
|
|
|
```
|
|
$ tree my-photos
|
|
my-photos
|
|
├── 2018/
|
|
│ └── Rome/
|
|
│ └── ...
|
|
└── 2019/
|
|
└── Helsinki/
|
|
└── DSCN2305.jpg
|
|
```
|
|
|
|
Assume you have a collection of photos as above, and want to see them overlaid with a friend's photos:
|
|
|
|
```
|
|
$ tree ~friend/photos
|
|
/home/friend/photos
|
|
├── 2018/
|
|
│ └── Amsterdam/
|
|
│ └── ...
|
|
└── 2019/
|
|
└── Helsinki/
|
|
└── DSC_0815.jpg
|
|
```
|
|
|
|
With unionfarm, you can create a shared view on them:
|
|
|
|
```
|
|
$ unionfarm all-photos my-photos ~friend/photos
|
|
$ tree all-photos
|
|
all-photos
|
|
├── 2018/
|
|
│ ├── Amsterdam -> /home/friend/photos/2018/Amsterdam/
|
|
│ └── Rome -> ../../my-photos/2018/Rome/
|
|
└── 2019/
|
|
└── Helsinki/
|
|
├── DSC_0815.jpg -> /home/friend/photos/2019/Helsinki/DSC_0815.jpg
|
|
└── DSCN2305.jpg -> ../../../my-photos/2019/Helsinki/DSCN2305.jpg
|
|
```
|