Что значит "+" и "!" в терминале перед командой?

+/usr/bin/rm -f foo 
!/usr/bin/rm -f bar 

Ответы (1 шт):

Автор решения: ipatev_nn

Восклицательный знак в начале команды подставляет аргументы программы вызываемые при запуске ранее (Работает только в терминале):

cat 1234.txt
# data in 1234.txt
!cat 123.txt
# > cat 1234.txt 123.txt
# data in 1234.txt
# data in 123.txt
!cat
# > cat 1234.txt 123.txt
# data in 1234.txt
# data in 123.txt

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

ls -l one.txt
cat 1234.txt
# data in 1234.txt
!ls two.txt
# > ls -l one.txt two.txt

Знак + перед командой больше напоминает вывод c дебаг режима set -x

#Команда уже была передана интерпретатору и он вернул строку в дебаг режиме
+/usr/bin/rm -f foo
#При запуске команды 
!/usr/bin/rm -f bar 
#будет преобразована в 
/usr/bin/rm -f foo -f bar 
→ Ссылка