LINUX.ORG.RU

[подтвердите баг] bash: дополнение cd


0

1

Суть бага: если перейти в папку по симлинку и попробовать получить дополнение для cd ../, то отобразятся не все директории.

Пример:

00:32:12 tia-laptop ~ [ tia ] $ pwd
/home/tia
00:32:44 tia-laptop ~ [ tia ] $ ln -s /var .
00:33:09 tia-laptop ~ [ tia ] $ cd var
00:33:12 tia-laptop ~/var [ tia ] $ pwd
/home/tia/var
00:33:14 tia-laptop ~/var [ tia ] $ cd ../<TAB><TAB>
tmp/ var/

В ~ у меня гораздо больше папок, в корне - тоже. Что характерно, var и tmp - пересечение множества имён папок (в том числе симлинков) в ~ и /.

Про дополнение: было стырено из какой-то убунты, также только что проверено в 11 минте. Точно такое же поведение, если сделать

complete -o dirnames cd

Дополнение, которое стырено из убунты: http://pastebin.mozilla.org/1388744

bash 4.2.20(1)-release (x86_64-pc-linux-gnu)

★★★★★

Последнее исправление: tiandrey (всего исправлений: 1)

Ответ на: комментарий от anonymous

Так точно. У тебя completion для cd включен или нет? Если нет (т.е. он использует для дополнения все файлы, а не только директории), то по-другому и быть не должно, так-то у меня тоже работает. В этом случае попробуй сделать complete -o dirnames cd и ещё раз проверь, если не сложно.

tiandrey ★★★★★
() автор топика
Ответ на: комментарий от tiandrey

[code]WebSrv test # mkdir 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
WebSrv test # ls
1 10 11 12 13 14 15 2 3 4 5 6 7 8 9
WebSrv test # pwd
/root/test
WebSrv test # ln -s /var .
WebSrv test # cd var
WebSrv var # cd ../
1/ 10/ 11/ 12/ 13/ 14/ 15/ 2/ 3/ 4/ 5/ 6/ 7/ 8/ 9/ var/
WebSrv var # cd ../
[/code]

gentoo amd64, bash --version GNU bash, version 4.2.20(1)-release (x86_64-pc-linux-gnu)

пара пакетов из ~amd64

kam ★★
()
Ответ на: комментарий от tiandrey
WebSrv var # cd ..
WebSrv test # ls
1  10  11  12  13  14  15  2  3  4  5  6  7  8  9  var
WebSrv test # touch 555
WebSrv test # touch 666
WebSrv test # touch 777
WebSrv test # touch 888
WebSrv test # touch 999
WebSrv test # cd var
WebSrv var # cd ../
1/   10/  11/  12/  13/  14/  15/  2/   3/   4/   5/   555  6/   666  7/   777  8/   888  9/   999  var/
WebSrv var # cd ../^C
WebSrv var # pwd
/root/test/var
WebSrv var #

kam ★★
()

Ничего подобного не наблюдаю. Никаких дополнений и алиасов не добавлял и всё показывают правильно:
4.2.20(2)-release (x86_64-unknown-linux-gnu)
4.2.20(2)-release (i686-pc-linux-gnu)

blexey ★★★★★
()
[ megabaks@desktop ] ~ $ cd ../
ftp/      megabaks/ 
[ megabaks@desktop ] ~ $  pwd
/home/megabaks
[ megabaks@desktop ] ~ $ ln -s /var .
[ megabaks@desktop ] ~ $ cd var
[ megabaks@desktop ] ~/var $ pwd
/home/megabaks/var
[ megabaks@desktop ] ~/var $ cd ../
Display all 219 possibilities? (y or n)
[ megabaks@desktop ] ~/var $ qlist -Iv bash
app-shells/bash-4.2_p20
[ megabaks@desktop ] ~/var $

gentoo ~x86
карма твоя не чиста :3

megabaks ★★★★
()
[ megabaks@desktop ] ~/var $ complete -o dirnames cd
[ megabaks@desktop ] ~/var $ cd ../
.config/ .kde4/   var/     
[ megabaks@desktop ] ~/var $

нехер было трогать искаропку!

megabaks ★★★★
()
Ответ на: комментарий от kam

555 666 777 888 999

Не работает. Нельзя сделать cd в файл. Без настроенного дополнения и у меня такая фигня, это поведение баша по дефолту.

tiandrey ★★★★★
() автор топика
Ответ на: комментарий от leave

бухаю с других ип ) по этому не зайти. и да, нету привычки менять настройки серверов по пьяни.

kam ★★
()
Ответ на: комментарий от megabaks

Искаропки он предлагает не только директории, но и файлы.

-o dirnames
             Perform directory name completion if the compspec generates no matches.
С этим он должен предлагать только директории.

tiandrey ★★★★★
() автор топика
Ответ на: и шо? от kam

kam

и что что работаю от рута? доступ на сервер только с моего ип адреса.


Напиши там в консольке rm -rf / <ENTER>, пожалуйста.

blackst0ne ★★★★★
()
Ответ на: комментарий от blackst0ne

rf -rf /
не покатит, да )
а вот rm -rf /* отработает на ура
З.Ы. защита в утилите rm от шалавливых рук. году эдак в 2008 появилась.

kam ★★
()
Ответ на: комментарий от blackst0ne

ой и да, забыл совсем, у меня корень системы каждые 2 часа rsync`ом сливаеться на сервер быкапов в германию)
важные данные конечно еще чаще бэкапятся...но корень на всякий случай тоже, ибо если что с рейдом случится, можно было быстро востановить работоспособность сервера.

kam ★★
()
Ответ на: комментарий от megabaks

megabaks

поучи матчасть, прежде чем ржать


Я учусь каждый день чему-то новому.

Тебе, кстати, тоже не помешает научиться давать более информативные комментарии, нежели «учи матчасть».

blackst0ne ★★★★★
()
Ответ на: комментарий от kam

kam

ой и да, забыл совсем, у меня корень системы каждые 2 часа rsync`ом сливаеться на сервер быкапов в германию)важные данные конечно еще чаще бэкапятся...но корень на всякий случай тоже, ибо если что с рейдом случится, можно было быстро востановить работоспособность сервера.


Ты молодец.

blackst0ne ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.