Вы могли записать немного сценария удара, чтобы сделать это. Просто выследите файл к определенному использованию количества байта tail -c
и перезапишите файл.
от man tail
:
-c, --bytes=N
output the last N bytes; alternatively, use +N to output bytes
starting with the Nth of each file
If the first character of N (the number of bytes or lines) is a `+',
print beginning with the Nth item from the start of each file, other‐
wise, print the last N items in the file. N may have a multiplier suf‐
fix: b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024, GB
1000*1000*1000, G 1024*1024*1024, and so on for T, P, E, Z, Y.
Это - специальное поведение bash
cd
встроенный; поведение файла прямого доступа является естественным. После того как Вы переходите по символьной ссылке, Вы находитесь в фактическом пути цели, и информация о первоначальном тракте потеряна; но если Вы используете bash
или zsh
кому: cd
там затем оболочка помнит первоначальный тракт и использует его в будущем родственнике cd
команды. Но не в относительных ссылках имени файла, потому что bash
на самом деле не знает, предназначили ли Вы имя файла или что-то еще.
Если Вы смотрите на cd
документация в bash
, Вы будете видеть, что существует -L
и -P
опции, которые говорят это, использовать ли "логичный" (запоминание первоначального тракта) или "физический" (использование идеи файловой системы) пути.
Если у Вас должно быть "логическое" поведение в любом случае, необходимо использовать a --bind
смонтируйтесь (на Linux; Солярис и другие Ose называют это "обратной петлей" или другими вещами) вместо символьной ссылки.
cd
команда заботится о, приблизительно это - аргумент, другие не заботившиеся о (ls ../conf
неудавшийся,[[ -e ../conf ]]
неудавшийся,test -e ../conf
, и т.д....)? – LiuYan 刘研 20.06.2011, 07:07cd
и связанноеpushd
. – geekosaur 20.06.2011, 07:13