Нет никакой причины этого 1 второго различия, по крайней мере, что касается регулярной сенсорной команды.
$ ls -l zz
ls: cannot access zz: No such file or directory
$ touch zz
$ stat zz
File: `zz'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 808h/2056d Inode: 265633 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/jlliagre) Gid: ( 1000/jlliagre)
Access: 2011-09-19 07:35:50.679679571 +0200
Modify: 2011-09-19 07:35:50.679679571 +0200
Change: 2011-09-19 07:35:50.679679571 +0200
Используйте strace, чтобы проверить, что единственный системный вызов, влияющий на созданный файл касанием:
open("zz", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3
dup2(3, 0) = 0
close(3) = 0
utimensat(0, NULL, NULL, 0) = 0
close(0) = 0
Если это правда, мог бы быть демон, или что-то, как говорит, что антивирус, получая доступ к Вашему файлу после того, как он создается.
Скорее используйте переменную для определения базового каталога.
CODE_BASE="/home/me/code/"
alias c1="cd $CODE_BASE/php"
alias c2="cd $CODE_BASE/jquery"
alias c3="cd $CODE_BASE/ruby"
alias c4="cd $CODE_BASE/c"
Помимо ответа от mgorven можно также использовать CDPATH
переменная. От удара человека:
CDPATH The search path for the cd command. This is a colon-separated
list of directories in which the shell looks for destination
directories specified by the cd command. A sample value is
".:~:/usr".
Если Вы установили его на CDPATH=.:$HOME/code/
можно просто работать cd php
и изменил бы каталог на $HOME/code/php
если каталог существует.
Другое решение состоит в том, чтобы использовать хешированные каталоги, если Вы используете zsh
, например:
hash -d code_base=/home/me/code/
Впоследствии можно использовать cd ~code_base/directory
измениться на определенный каталог.
"
и нет'
– Michael Durrant 07.06.2012, 06:41'
здесь, потому что переменная $CODE_BASE используется в псевдониме и'
не позволит разворачивают эту переменную. В общем случае можно использовать также'
также"
. Обе работы хорошо. – rush 07.06.2012, 11:38