Сценарий для этого не так прост, как можно было бы подумать в оболочке POSIX , но легко в bash:
#!/bin/bash
mkdir -p "${@: -1}" || exit 1
mv "$@"
Это использует Bash ism -для получения последнего аргумента и mkdir
его. Параметр -p
для mkdir создает всю цепочку каталогов, поэтому, если вы попытаетесь создать «dir/subdir», это сработает.
Я бы использовал собственный сценарий и присвоил его команде locate
. Предложение:
#!/bin/bash
path=$(locate $1)
full_path=$(dirname $path)
echo $full_path