Artificial intelligent assistant

How can I copy a file and create the target directories at the same time? I want to `cp aaa/deep/sea/blob.psd` to `bbb/deep/sea/blob.psd` How do I do the copy if the `deep` and `sea` directories don't exist under `bbb` so that the copy both creates the directories that are needed and copies the file? Right now I get `No such file or directory` as deep and sea don't exist. I looked thru the man help pages and other questions but nothing jumps out at me. The closest I've got is using `rcp` for the directory: rcp -r aaa/deep/sea/ bbb/deep/sea/ though this copies the whole directory and contents and I just want the one file. Trying to do that however gave `cp: cannot create regular file bbb/deep/sea/blob.psd' such file or directory`

Try to use such next function for such situation:


copy_wdir() { mkdir -p -- "$(dirname -- "$2")" && cp -- "$1" "$2" ; }


and use it as


copy_wdir aaa/deep/sea/blob.psd bbb/deep/sea/blob.psd


By the way, GNU `cp` has a `--parents` option. It's really close to what you want, but not exactly.
It will also create `aaa` directory that seems you don't need. However you can first cd to `aaa` and copy like:


cd aaa && cp --parents deep/sea/blob.psd ../bbb/

xcX3v84RxoQ-4GxG32940ukFUIEgYdPy dbc608544fd521f21cd32dff6c6a194e