Unix - create path of folders and file Unix - create path of folders and file unix unix

Unix - create path of folders and file


Use && to combine two commands in one shell line:

COMMAND1 && COMMAND2mkdir -p /my/other/path/here/ && touch /my/other/path/here/cpedthing.txt

Note: Previously I recommended usage of ; to separate the two commands but as pointed out by @trysis it's probably better to use && in most situations because in case COMMAND1 fails COMMAND2 won't be executed either. (Otherwise this might lead to issues you might not have been expecting.)


You need to make all of the parent directories first.

FILE=./base/data/sounds/effects/camera_click.oggmkdir -p "$(dirname "$FILE")" && touch "$FILE"

If you want to get creative, you can make a function:

mktouch() {    if [ $# -lt 1 ]; then        echo "Missing argument";        return 1;    fi    for f in "$@"; do        mkdir -p -- "$(dirname -- "$f")"        touch -- "$f"    done}

And then use it like any other command:

mktouch ./base/data/sounds/effects/camera_click.ogg ./some/other/file


Do it with /usr/bin/install:

install -D /my/long/path/here/thing.txt /my/other/path/here/cpedthing.txt

when you don't have a source file:

install -D <(echo 1) /my/other/path/here/cpedthing.txt