this post was submitted on 01 Oct 2025
64 points (93.2% liked)
Selfhosted
59939 readers
327 users here now
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam.
-
Posts here are to be centered around self-hosting. Please ensure it is clear in your post how it relates to self-hosting.
-
Don't duplicate the full text of your blog or git here. Just post the link for folks to click.
-
Submission headline should match the article title.
-
No trolling.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
founded 3 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I have 5
docker-compose-based services. I wrote a shell script:(edit: spelling; thanks Unquote0270)
I hope the real version doesn't have the spelling problem!
For loops with find are evil for a lot of reasons, one of which is spaces:
You can kinda fix that with IFS (this breaks if newlines are in the filename which would probably only happen in a malicious context):
But you can also use something like:
or in your case this could all be done from
findalone:-execdirin this case is basically replacing yourcd $(dirname $y), which is also brittle when it comes to spaces and should be quoted:cd "$(dirname "$y")".