knowledge/technology/applications/cli/unionfarm.md
2025-01-30 16:17:23 +01:00

1.5 KiB

obj repo rev
application https://codeberg.org/chrysn/unionfarm 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