"locate" возвращает относительные пути вместо абсолютных

Сценарий для этого не так прост, как можно было бы подумать в оболочке POSIX , но легко в bash:

#!/bin/bash

mkdir -p "${@: -1}" || exit 1
mv "$@"

Это использует Bash ism -для получения последнего аргумента и mkdirего. Параметр -pдля mkdir создает всю цепочку каталогов, поэтому, если вы попытаетесь создать «dir/subdir», это сработает.

3
24.01.2021, 22:16
1 ответ

Я бы использовал собственный сценарий и присвоил его команде locate. Предложение:

#!/bin/bash
 
path=$(locate $1)
full_path=$(dirname $path)
echo $full_path
1
18.03.2021, 22:36

Теги

Похожие вопросы