Ya que está considerando eliminar tgt
de todos modos, ¿por qué no intenta ejecutar rsync
con -H
para ver qué sucede?
Se crearán los enlaces duros y se ahorrará espacio.
Это разница между экспортируемыми и не -экспортируемыми переменными среды.
Команда export
перечисляет только экспортированные переменные среды ,то есть те переменные, которые помечены как наследуемые дочерними процессами либо потому, что оболочка унаследовала их от своего родительского процесса, либо потому, что была использована команда export
или declare -x
, чтобы пометить их как экспортируемые.
Неэкспортируемые -переменные полезны в скриптах, так как вы можете использовать их внутри скрипта, но они не будут загромождать среду каких-либо дочерних процессов.
Для установки не -экспортируемой переменной можно использовать только синтаксис name=value
:
$ FOO=bar
$ echo $FOO
bar
export | grep FOO
$
Позже вы можете пометить переменную как экспортируемую:
...
$ export FOO
$ export | grep FOO
declare -x FOO="bar"
Классическая оболочка Bourne на самом деле требовала от вас инициализировать переменные среды в два -шага :сначала установить значение, а затем пометить его как экспортируемое. Таким образом, вы все еще можете видеть этот синтаксис в сценариях оболочки, стремящихся к максимальной переносимости :
.FOO=bar
export FOO
Современные оболочки позволяют сделать это за один шаг:
$ export FOO=bar
Таким образом, в вашем случае вы должны были ранее выполнить PKG_CONFIG_PATH=:/usr/local/lib/pkgconfig
либо вручную, либо в исходном сценарии, либо как часть ваших сценариев входа.
Прямо сейчас у меня есть два решения:
Удалите этот код из /etc/bashrc
for i in /etc/profile.d/*.sh; do
if [ -r "$i" ]; then
if [ "$PS1" ]; then
. "$i"
else
. "$i" >/dev/null
fi
fi
done
Проблема в том, что я не знаю, почему этот код вообще должен быть здесь, после его удаления могут возникнуть побочные эффекты.
Просто используйте прямое назначение в /etc/profile.d/ *.sh
export PKG_CONFIG_PATH=:/usr/local/lib/pkgconfig
Конечно, это исключает любой ранее существовавший путь, а не стандартную практику.
Ни одно из них не кажется идеальным решением, есть ли лучшее предложение?
Обновление:
Выполнение ① приведет к появлению этого сообщения об ошибке после ввода каждой команды на терминале
bash: __vte_prompt_command: command not found