Windows имеет тенденцию изменяться очень медленно и дает шанс авторам вируса/троянца предназначаться для очень определенных ошибок на двоичных файлах Windows или двоичных файлах из приложений сторонних производителей.
Путем GNU/дистрибутивы Linux сделан, делает особенно трудным для вирусов использовать уязвимости (когда доступный).
Как указано Gilles, можно быть в безопасности путем форматирования SD-карты из Linux Живой CD.
Я вижу три решения использовать .last_dir
. Можно поместить echo $PWD > ~/.last_dir
также:
В специальной функции, которая была бы оберткой для cd
:
function cd_
{
[[ -d "$@" ]] || return 1
echo "$@" > ~/.last_dir
cd "$@"
}
Поместите это в Ваш ~/.bashrc
и затем используйте cd_
вместо CD каждый раз Вы хотите, чтобы Ваш новый рабочий каталог был сохранен.
В Вашем $PROMPT_COMMAND
(не рекомендуемый):
PROMPT_COMMAND="$PROMPT_COMMAND; pwd > ~/.last_dir"
Можно протестировать это непосредственно от терминала или поместить его в ~/.bashrc
. Это решение, однако, инициировало запись на диск каждый раз, когда подсказка появляется, который мог бы доставить неприятности - но с другой стороны, .last_dir
содержал бы текущий каталог, неважно, как Вы добрались там.
В пользовательском сценарии расширения жемчуга для rxvt
. Я никогда не создавал тот сам, но можно найти довольно много примеров в сети.
Это на самом деле довольно тривиально; если Вы работаете urxvt
из Вашего существующего urxvt
окно, новое окно будет в том же каталоге. Я имею dup
искаженный к urxvt &
поэтому. Если Вы хотите связанный с горячей клавишей, можно использовать удар bind
команда. Например, для привязки его с F1:
$ bind '"\e[11~": "urxvt &\n"'
( urxvt & ) &>/dev/null
вместо просто фоновой обработки.
– rozcietrzewiacz
23.02.2012, 21:17
Я в настоящее время использую эту версию решения № 1
# save path on cd
function cd {
builtin cd $@
pwd > ~/.last_dir
}
# restore last saved path
if [ -f ~/.last_dir ]
then cd `cat ~/.last_dir`
fi
в моем .zshrc
trap "[ -f ~/.last_dir ] && rm ~/.last_dir" EXIT
я хочу, всегда запускаются в моем доме кроме тех случаев, когда я открываю новую вкладку
– rkmax
13.07.2013, 00:18
Просто добавьте . /etc/profile.d/vte.sh
в Вашем ~/.bashrc
получить ту же функцию
Конечно, это рабочий подход к модификации поведения cd
, но я хотел бы показать более простое решение. В man bash(1) я обнаружил, что если интерактивный bash выходит, то запускается ~/.bash_logout
, если он существует. Таким образом, вместо того, чтобы хранить путь при каждом вызове cd
, последний путь может быть сохранен при выходе.
Мой ~/.bash_logout
очень прост:
echo $PWD >~/.lastdir
И где-то в моем .bashrc
я поместил эту строку:
[ -r ~/.lastdir ] && cd $(<~/.lastdir)
Очень часто я использую сразу несколько терминальных окон, каждое из которых имеет несколько вкладок. Например: одно окно для вкладок разработки исходного кода, одно окно для файлов латекса, одно окно для выполнения R и скриптинга и т.д. В одном окне я хочу, чтобы новый терминал с вкладками поменялся на каталог, который используется последним в этом конкретном окне (раньше это работало, но с новой версией gnome это почему-то не работает). Следующее грязное решение мне подходит. Я поместил это в .bashrc.
dirfilename="/tmp/.lastdir-$WINDOWID"
[ -r "$dirfilename" ] && {
savdir=`cat $dirfilename`
cd "$savdir"
}
function cd ()
{
builtin cd "$@"
echo $PWD > $dirfilename
}
Вставьте это в ~/.bashrc, (или ~/.zshrc, если вы используете zsh ).
set_working_dir() {
# All terminals after this command, will be opened in your current directory.
for var in "$@"
do
echo "$var" > ~/.cache/.last_dir
done
if [ $# -eq 0 ]
then
pwd > ~/.cache/.last_dir
fi
echo '* Working directory saved.'
}
alias sdw='set_working_dir'
Перезагрузитесь, и вы можете использовать его как:
swd
или
swd "/some/directory"
Затем запустите терминал, например:
nameofyourterminal --working-directory=$(cat ~/.cache/.last_dir)
В zsh можно использовать хуки:
chpwd_functions=(${chpwd_functions[@]} "function-that-saves-pwd")
PROMPT_COMMAND
, одна из наиболее злоупотребленных переменных среды всего времени – Michael Mrozek♦ 23.02.2012, 21:37$PWD
не был заключен в кавычки.) Позволяют мне зафиксировать это... Там. Это должно сделать это. – rozcietrzewiacz 23.02.2012, 23:33