Я обычно использую трюк sudo bash -c, или просто сделаю sudo -s первым, чтобы остаться в корне, а затем запустите команду перенаправления.
Причина, по которой это не работает, заключается в том, что оболочка сначала обрабатывает перенаправление, затем запускает sudo. Поскольку ваша оболочка не имеет доступа к файлу, перенаправление не работает.
Не уверен в AIX, но я помню это как старый трюк оболочки Korn в ящиках Solaris, которые я использовал для администрирования. В вашем примере вы должны ввести команду:
cd 2.0.1 1.0.8
Дополнительная информация здесь .
cd `pwd | sed 's / 2 \ .0 \ .1 / 1 \ .0 \ .8 /' `
Однако это не очень красиво. Вы можете немного поработать, поставив его в функцию:
function mycd {cd `pwd | sed s $ 1`}
И затем называть его следующим:
mycd '/2\.0\.1/1.0.8/'
Однако вам все равно нужно избегать точек, но я уверен, что с этим можно поработать, подумав немного.
Я сам использовал (и пропустил) эту функцию. Это зависит от того, какой вкус и / или выпуск * nix вы используете. Если вы используете bash, вот удобный способ расширить встроенный компакт-диск, чтобы включить эту функцию. Поместите это в свой .bashrc (или для проверки вставьте его в свою оболочку bash и нажмите enter).
function cd () {if [$ # -eq 2]; затем встроенный cd $ {PWD / $ 1 / $ 2}; else builtin cd $ 1; fi}
Если вы являетесь поклонником vi, вы можете включить режим vi в своей оболочке (например, bash set -o vi) и использовать командный режим vi ...
Или вы могли бы сделать сумасшедшую историю расширение (проверено в zsh, возможно, также в bash):
$ cd /etc/application-1.0.8/options/default cd: нет такого файла или каталога: / etc / application- 1.0.8 / options / default $ !!: s / 1.0.8 / 2.0.1 / cd /etc/application-2.0.1/options/default cd: нет такого файла или каталога: /etc/application-2.0.1 / options / default
Это должно работать в bash на ubuntu 10.04: cd $ {PWD / old / new}
. В основном это заменяет первое появление old
в вашем текущем рабочем каталоге с новым
. 2 примера ниже.
ing02741 @ hoster: ~ $ cd / home / ing02741 / Видео / ing02741 @ hoster: ~ / Videos $ cd $ {PWD / ing02741 / koushik} ing02741 @ hoster: / home / koushik / Videos $
ing02741 @ hoster: ~ / src / cdtest $ mkdir dir-v1.0.1 dir-v2.2.2 dir-v3.0.7 ing02741 @ hoster: ~ / src / cdtest $ mkdir dir-v1.0.1 / ind dir-v2.2.2 / ind dir-v3.0.7 / ind ing02741 @ hoster: ~ / src / cdtest $ cd dir-v1.0.1 / ind / ing02741 @ hoster: ~ / src / cdtest / dir-v1.0.1 / ind $ cd $ {PWD / 1.0.1 / 2.2.2} ing02741 @ hoster: ~ / src / cdtest / dir-v2.2.2 / ind $
Заимствуя идею sepp2k выше, вы можете сделать такую функцию
mycd {cd $ {PWD / $ 1 / $ 2}}
, а затем используйте что-то вроде mycd 2.0.1 1.0.8
для переключения.
Вероятно, вы помните о расширении истории. Я не знаю, что было в вашей оболочке в AIX, но один из способов сделать это в bash - ^ 2.0.1 ^ 1.0.8
.
Расширение истории меньше полезно с оболочками, такими как bash и zsh, которые имеют мощное редактирование командной строки. Вы можете использовать клавиши со стрелками для вызова предыдущих команд и Alt +. для вставки последнего слова предыдущей команды (дважды нажмите его, чтобы довести команду до этого и т. д.).
Чтобы использовать -P | -L | -
, используйте следующее:
function cd () {typeset arg = case $ 1 in - | -L | -P) arg = $ 1; сдвиг ;; esac [$ # -gt 1] & amp; & amp; & amp; {builtin cd $ arg "$ {PWD / $ 1 / $ 2}"} || {builtin cd $ arg "$ @"}}
^ 2.0.1 ^ 1.0.8
Вышеупомянутая команда swap 2.0.1 - 1.0.8 в последней команде, ее работа в bash
Не уверен в AIX, но я помню это как старый трюк оболочки Korn в ящиках Solaris, которые я использовал для администрирования. В вашем примере вы должны ввести команду:
cd 2.0.1 1.0.8
Дополнительная информация здесь .
cd `pwd | sed 's / 2 \ .0 \ .1 / 1 \ .0 \ .8 /' `
Однако это не очень красиво. Вы можете немного поработать, поставив его в функцию:
function mycd {cd `pwd | sed s $ 1`}
И затем называть его следующим:
mycd '/2\.0\.1/1.0.8/'
Однако вам все равно нужно избегать точек, но я уверен, что с этим можно поработать, подумав немного.
Я сам использовал (и пропустил) эту функцию. Это зависит от того, какой вкус и / или выпуск * nix вы используете. Если вы используете bash, вот удобный способ расширить встроенный компакт-диск, чтобы включить эту функцию. Поместите это в свой .bashrc (или для проверки вставьте его в свою оболочку bash и нажмите enter).
function cd () {if [$ # -eq 2]; затем встроенный cd $ {PWD / $ 1 / $ 2}; else builtin cd $ 1; fi}
Если вы являетесь поклонником vi, вы можете включить режим vi в своей оболочке (например, bash set -o vi) и использовать командный режим vi ...
Или вы могли бы сделать сумасшедшую историю расширение (проверено в zsh, возможно, также в bash):
$ cd /etc/application-1.0.8/options/default cd: нет такого файла или каталога: / etc / application- 1.0.8 / options / default $ !!: s / 1.0.8 / 2.0.1 / cd /etc/application-2.0.1/options/default cd: нет такого файла или каталога: /etc/application-2.0.1 / options / default
Это должно работать в bash на ubuntu 10.04: cd $ {PWD / old / new}
. В основном это заменяет первое появление old
в вашем текущем рабочем каталоге с новым
. 2 примера ниже.
ing02741 @ hoster: ~ $ cd / home / ing02741 / Видео / ing02741 @ hoster: ~ / Videos $ cd $ {PWD / ing02741 / koushik} ing02741 @ hoster: / home / koushik / Videos $
ing02741 @ hoster: ~ / src / cdtest $ mkdir dir-v1.0.1 dir-v2.2.2 dir-v3.0.7 ing02741 @ hoster: ~ / src / cdtest $ mkdir dir-v1.0.1 / ind dir-v2.2.2 / ind dir-v3.0.7 / ind ing02741 @ hoster: ~ / src / cdtest $ cd dir-v1.0.1 / ind / ing02741 @ hoster: ~ / src / cdtest / dir-v1.0.1 / ind $ cd $ {PWD / 1.0.1 / 2.2.2} ing02741 @ hoster: ~ / src / cdtest / dir-v2.2.2 / ind $
Заимствуя идею sepp2k выше, вы можете сделать такую функцию
mycd {cd $ {PWD / $ 1 / $ 2}}
, а затем используйте что-то вроде mycd 2.0.1 1.0.8
для переключения.
Чтобы использовать -P | -L | -
, используйте следующее:
function cd () {typeset arg = case $ 1 in - | -L | -P) arg = $ 1; сдвиг ;; esac [$ # -gt 1] & amp; & amp; & amp; {builtin cd $ arg "$ {PWD / $ 1 / $ 2}"} || {builtin cd $ arg "$ @"}}
Вероятно, вы помните о расширении истории. Я не знаю, что было в вашей оболочке в AIX, но один способ сделать это в bash - ^ 2.0.1 ^ 1.0.8
.
Расширение истории меньше полезно с оболочками, такими как bash и zsh, которые имеют мощное редактирование командной строки. Вы можете использовать клавиши со стрелками для вызова предыдущих команд и Alt +. для вставки последнего слова предыдущей команды (дважды нажмите его, чтобы довести команду до этого и т. д.).
^ 2.0.1 ^ 1.0.8
Вышеупомянутая команда swap 2.0.1 - 1.0.8 в последней команде, ее работа в bash
Не уверен в AIX, но я помню это как старый трюк оболочки Korn в ящиках Solaris, которые я использовал для администрирования. В вашем примере вы должны ввести команду:
cd 2.0.1 1.0.8
Дополнительная информация здесь .
Я сам использовал (и пропустил) эту функцию. Это зависит от того, какой вкус и / или выпуск * nix вы используете. Если вы используете bash, вот удобный способ расширить встроенный компакт-диск, чтобы включить эту функцию. Поместите это в свой .bashrc (или для проверки вставьте его в свою оболочку bash и нажмите enter).
function cd () {if [$ # -eq 2]; затем встроенный cd $ {PWD / $ 1 / $ 2}; else builtin cd $ 1; fi}
cd `pwd | sed 's / 2 \ .0 \ .1 / 1 \ .0 \ .8 /' `
Однако это не очень красиво. Вы можете немного поработать, поставив его в функцию:
function mycd {cd `pwd | sed s $ 1`}
И затем называть его следующим:
mycd '/2\.0\.1/1.0.8/'
Однако вам все равно нужно избегать точек, но я уверен, что с этим можно поработать, подумав немного.
Если вы являетесь поклонником vi, вы можете включить режим vi в своей оболочке (например, bash set -o vi) и использовать командный режим vi ...
Или вы могли бы сделать сумасшедшую историю расширение (проверено в zsh, возможно, также в bash):
$ cd /etc/application-1.0.8/options/default cd: нет такого файла или каталога: / etc / application- 1.0.8 / options / default $ !!: s / 1.0.8 / 2.0.1 / cd /etc/application-2.0.1/options/default cd: нет такого файла или каталога: /etc/application-2.0.1 / options / default
Это должно работать в bash на ubuntu 10.04: cd $ {PWD / old / new}
. В основном это заменяет первое появление old
в вашем текущем рабочем каталоге с новым
. 2 примера ниже.
ing02741 @ hoster: ~ $ cd / home / ing02741 / Видео / ing02741 @ hoster: ~ / Videos $ cd $ {PWD / ing02741 / koushik} ing02741 @ hoster: / home / koushik / Videos $
ing02741 @ hoster: ~ / src / cdtest $ mkdir dir-v1.0.1 dir-v2.2.2 dir-v3.0.7 ing02741 @ hoster: ~ / src / cdtest $ mkdir dir-v1.0.1 / ind dir-v2.2.2 / ind dir-v3.0.7 / ind ing02741 @ hoster: ~ / src / cdtest $ cd dir-v1.0.1 / ind / ing02741 @ hoster: ~ / src / cdtest / dir-v1.0.1 / ind $ cd $ {PWD / 1.0.1 / 2.2.2} ing02741 @ hoster: ~ / src / cdtest / dir-v2.2.2 / ind $
Заимствуя идею sepp2k выше, вы можете сделать такую функцию
mycd {cd $ {PWD / $ 1 / $ 2}}
, а затем используйте что-то вроде mycd 2.0.1 1.0.8
для переключения.
Чтобы использовать -P | -L | -
, используйте следующее:
function cd () {typeset arg = case $ 1 in - | -L | -P) arg = $ 1; сдвиг ;; esac [$ # -gt 1] & amp; & amp; & amp; {builtin cd $ arg "$ {PWD / $ 1 / $ 2}"} || {builtin cd $ arg "$ @"}}
Вероятно, вы помните о расширении истории. Я не знаю, что было в вашей оболочке в AIX, но один способ сделать это в bash - ^ 2.0.1 ^ 1.0.8
.
Расширение истории меньше полезно с оболочками, такими как bash и zsh, которые имеют мощное редактирование командной строки. Вы можете использовать клавиши со стрелками для вызова предыдущих команд и Alt +. для вставки последнего слова предыдущей команды (дважды нажмите его, чтобы довести команду до этого и т. д.).
Это должно работать в bash на ubuntu 10.04: cd $ {PWD / old / new}
. В основном это заменяет первое появление old
в вашем текущем рабочем каталоге с новым
. 2 примера ниже.
ing02741 @ hoster: ~ $ cd / home / ing02741 / Видео / ing02741 @ hoster: ~ / Videos $ cd $ {PWD / ing02741 / koushik} ing02741 @ hoster: / home / koushik / Videos $
ing02741 @ hoster: ~ / src / cdtest $ mkdir dir-v1.0.1 dir-v2.2.2 dir-v3.0.7 ing02741 @ hoster: ~ / src / cdtest $ mkdir dir-v1.0.1 / ind dir-v2.2.2 / ind dir-v3.0.7 / ind ing02741 @ hoster: ~ / src / cdtest $ cd dir-v1.0.1 / ind / ing02741 @ hoster: ~ / src / cdtest / dir-v1.0.1 / ind $ cd $ {PWD / 1.0.1 / 2.2.2} ing02741 @ hoster: ~ / src / cdtest / dir-v2.2.2 / ind $
Заимствуя идею sepp2k выше, вы можете сделать такую функцию
mycd {cd $ {PWD / $ 1 / $ 2}}
, а затем используйте что-то вроде mycd 2.0.1 1.0.8
для переключения.
Вероятно, вы помните о расширении истории. Я не знаю, что было в вашей оболочке в AIX, но один способ сделать это в bash - ^ 2.0.1 ^ 1.0.8
.
Расширение истории меньше полезно с оболочками, такими как bash и zsh, которые имеют мощное редактирование командной строки. Вы можете использовать клавиши со стрелками для вызова предыдущих команд и Alt +. для вставки последнего слова предыдущей команды (дважды нажмите его, чтобы довести команду до этого и т. д.).
Не уверен в AIX, но я помню это как старый трюк оболочки Korn в ящиках Solaris, которые я использовал для администрирования. В вашем примере вы должны ввести команду:
cd 2.0.1 1.0.8
Дополнительная информация здесь .
cd `pwd | sed 's / 2 \ .0 \ .1 / 1 \ .0 \ .8 /' `
Однако это не очень красиво. Вы можете немного поработать, поставив его в функцию:
function mycd {cd `pwd | sed s $ 1`}
И затем называть его следующим:
mycd '/2\.0\.1/1.0.8/'
Однако вам все равно нужно избегать точек, но я уверен, что с этим можно поработать, подумав немного.
^ 2.0.1 ^ 1.0.8
Вышеупомянутая команда swap 2.0.1 - 1.0.8 в последней команде, ее работа в bash
Я сам использовал (и пропустил) эту функцию. Это зависит от того, какой вкус и / или выпуск * nix вы используете. Если вы используете bash, вот удобный способ расширить встроенный компакт-диск, чтобы включить эту функцию. Поместите это в свой .bashrc (или для проверки вставьте его в свою оболочку bash и нажмите enter).
function cd () {if [$ # -eq 2]; затем встроенный cd $ {PWD / $ 1 / $ 2}; else builtin cd $ 1; fi}
Чтобы использовать -P | -L | -
, используйте следующее:
function cd () {typeset arg = case $ 1 in - | -L | -P) arg = $ 1; сдвиг ;; esac [$ # -gt 1] & amp; & amp; & amp; {builtin cd $ arg "$ {PWD / $ 1 / $ 2}"} || {builtin cd $ arg "$ @"}}