Выбор родительского каталога командного файла

#bash #terminal #directory #parent

#bash #терминал #каталог #родительский

Вопрос:

Я создаю программу bash (.command) на своем Mac, и мне нужно иметь возможность выбирать родительский каталог файла (каталог, в котором он находится), независимо от того, где он находится. Например, если файл находится в папке ~/Desktop/file.command, я хочу иметь возможность выбрать папку на рабочем столе.

Примечание: говоря select, я имею в виду, что я хочу иметь возможность использовать для него команду (cp, mv, cd, ls и т. Д.)

Комментарии:

1. В этом случае используйте . (с одной точкой), например: cp ./somefile.txt ~/резервное копирование

2. Первым позиционным параметром скрипта всегда является имя скрипта (с полным путем), поэтому внутри скрипта это "$0" имя скрипта с полным путем. Вы всегда можете получить текущий каталог скрипта с dirname "$0" помощью . Вы можете получить родительский файл для текущего с помощью say current="$(dirname "$0")" , затем parent="${current%/*}"

3. Технически, $0 это не позиционный параметр; это специальный параметр.

4. Согласен, была некоторая умственная слабость, когда я искал правильный термин.