#bash #terminal #directory #parent
#bash #терминал #каталог #родительский
Вопрос:
Я создаю программу bash (.command) на своем Mac, и мне нужно иметь возможность выбирать родительский каталог файла (каталог, в котором он находится), независимо от того, где он находится. Например, если файл находится в папке ~/Desktop/file.command, я хочу иметь возможность выбрать папку на рабочем столе.
Примечание: говоря select, я имею в виду, что я хочу иметь возможность использовать для него команду (cp, mv, cd, ls и т. Д.)
Комментарии:
1. В этом случае используйте . (с одной точкой), например: cp ./somefile.txt ~/резервное копирование
2. Первым позиционным параметром скрипта всегда является имя скрипта (с полным путем), поэтому внутри скрипта это
"$0"
имя скрипта с полным путем. Вы всегда можете получить текущий каталог скрипта сdirname "$0"
помощью . Вы можете получить родительский файл для текущего с помощью saycurrent="$(dirname "$0")"
, затемparent="${current%/*}"
3. Технически,
$0
это не позиционный параметр; это специальный параметр.4. Согласен, была некоторая умственная слабость, когда я искал правильный термин.