Bash запоминает неверный путь к исполняемому файлу, который был перемещен / удален

Просто для образования решение sed

sed '
    1b                             #output 1st line (header)
    $!N                            #add next line to operate 2 lines altogether
    s/\(.*\)\n\(CARD.*\)/\2\n\1/   #move line with CARD to first place 
    /^CARD/D                       #delete line with CARD and go to start
    s/^\(\([0-9]*\s*\).*\n\)\s\s*/\1\2/ 
                                   #repeat 1st field of 1st line if empty in 2nd
    /\n/{P;D}                      #print&remove 1st line, go to start 
    '
30
08.01.2017, 18:31
1 ответ

Когда вы запускаете команду в bash , она запоминает местоположение этого исполняемого файла, поэтому ему не нужно каждый раз заново искать в ПУТЬ . Поэтому, если вы запустите исполняемый файл, а затем измените его местоположение, bash по-прежнему будет пытаться использовать старое местоположение. Вы должны подтвердить это с помощью hash -t pip3 , который покажет старое местоположение.

Если вы запустите hash -d pip3 , он скажет bash забыть старое местоположение и найти новое при следующей попытке.

49
27.01.2020, 19:38

Теги

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