Что значит "+" и "!" в терминале перед командой?
+/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