linux中命令行tab补齐文件名(不是目录)时文件名后面为什么会带?

linux中命令行tab补齐文件名(不是目录)时文件名后面为什么会带?,第1张

1. /etc/ 本来就是个目录

2. tab 键自动补全的时候,目录会加/这本身也就表示该为目录,文件则不加。

楼主是不是弄错了。

其实查看是文件还是目录可以,ls -ld $file 看下类型

[root@master Desktop]# ls -ld testdir/

drwxr-xr-x 2 root root 4096 Jan 13 2012 testdir/

比如这个以d开头就表示目录了

其次在ls命令的时候,可以加-F参数,如果是目录,则会加 /,比如:

[root@master Desktop]# ls -F

crontab testdir/ vmware-tools-distrib/

在Linux的终端中输入tab键时,有时会出现命令不能补全的情况,此时有一种原因是bash错误。

使用 ls -l /bin/sh 命令发现

/bin/sh ->/bin/dash

dash是一个不同于bash的Shell,它主要为了执行脚本而出现,而不是交互,它速度更快,但功能比bash要少的多。语法严格遵守POSIX标准。

通过命令 ln -sf bash /bin/sh 可以将dash改成bash。此时问题可以解决。

Ubuntu系统在某些情况下,apt-get 不能补全相关命令,可以通过修改/etc/bash.bashrc文件的相关行,把默认的#号去掉即可。

if [ -f /etc/bash_completion ]then

/etc/bash_completion

fi

重新登录Shell即可。

此处参考: http://freddy.cc/article/185.

本文出自 “ 低调的前进 ” 博客,请务必保留此出处 http://tdppro.blog.51cto.com/749956/1248285


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8985715.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存