Два пути:
Если вы хотите сделать разовую -вещь, вы можете установить EXIT
ловушку:
trap 'rm /etc/foo' EXIT
Это запустит данный код при выходе из текущей оболочки. Ловушку можно установить в интерактивной подсказке или в $HOME/.bash_profile
, если вы хотите, чтобы это происходило каждый раз, (обратите внимание, что повторная установка ловушки удалит ранее установленную ловушку ). Вы можете удалить ловушку перед ее выполнением с помощью trap - EXIT
.
Другой способ: если вы хотите всегда запускать определенный набор команд при выходе из интерактивной оболочки входа в систему, вы можете поместить эти команды в $HOME/.bash_logout
.
Этот файл выполняется при выходе из интерактивной оболочки входа в систему или при выполнении не -интерактивной оболочки входа в систему exit
.
Ваш пример unzip foo.zip *.txt
работал только потому, что в вашем рабочем каталоге не было файла *.txt
. В противном случае *.txt
были бы расширены оболочкой до имен текстовых файлов в вашем каталоге. Вы должны процитировать его, чтобы быть в безопасности.
Так как unzip
использует подстановочные знаки, используйте
unzip foo.zip '*acme*/*.txt'
или даже
unzip foo.zip '*acme*.txt'
Если вы не хотите восстанавливать исходную структуру каталогов и извлекать файлы в текущий рабочий каталог, добавьте параметр-j
:
unzip -j foo.zip '*acme*/*.txt'