Hello I am seeking a simple solution to running a list of “chown -R” <mydir>" commands in script.sh

It takes a long time to sequentially execute all of these chown commands recursively because the directories have so many files. I want to be able to tackle the root level directories in parallel to speed things up. I imagine there must be a simple way to do this while keeping the list of commands in a single file. xargs and some of the other things I saw online looked like bad fits or would be over engineering this problem.

  • lurch (he/him)
    link
    fedilink
    arrow-up
    4
    ·
    edit-2
    6 months ago

    if it’s bash, add & at the end of the chown lines (no ;). then put “wait” on a single line where it should wait for all to finish.

    if you don’t add “wait”, the chowns could be kilked when the script finishes. to prevent that you have to redirect their error and standard output somewhere that exists even after the script finished (/dev/null or a logfile) and call “disown %+” to detach the processes from the parent.