要列出文件,我使用ls。我知道如何列出几乎所有(-A)或全部(-a)。但是当我试图显示隐藏的文件和隐藏显示的文件时,我就不太幸运了:
ls --hide='*' -A
ls文档中描述了-A选项中和--hide选项的行为。
那么,我可以使用ls的另一个选项吗?find-xargs-ls组合不可能是唯一的解决方案,对吧?
大家好,我正在学习如何在linux中使用.bashrc文件,正如我的标题所述,我想知道如何让函数将参数识别为别名
我有一个名为home的别名,定义为:alias home=$HOME
和一个函数go定义为
function go(){
cd $1
ls $1
}
但是当我做go home时,我会得到
bash: cd: home: No such file or directory ls: cannot access home: No such file or directory
当我想要它做的时候去$HOME
我该如何去实现它呢?
我的bashrc的相关部分如下所示:
if [ -x /usr/bin/dircolors ]; then
alias ls='ls --color=auto --list-directories-first' # use colors
# ...
else
alias ls='ls --list-directories-first' # don't use colors
# ...
fi
这是为了允许动态地确定别名的某些部分(特别是是否要输出颜色)。但是每次重写整个别名是很乏味的,我宁愿添加到这个别名中,也不愿完全替换它
bash内置type可以很好地确定给定命令将做什么以及如何定义它,但是您不能直接提取文件路径,以防该命令最终解析为一个文件。例如,要仅执行$PATH查找,可以使用which
$ ls true
ls: cannot access true: No such file or directory
$ ls `which true`
/bin/true
假设我有一个别名:
alias notfalse=true
那我就不能直接问which了,但是我可以问type
$ type notfalse
notfalse is aliased to `true'
但我想要的是让它通过查看$PATH来解
一个简单的例子:
假设我有一个别名,其来源如下:
alias ls 'ls -o'
我希望在此基础上添加第二个别名:
alias ls 'ls -a'
所以当我执行它的时候,我真的得到了:
ls -o -a
这个是可能的吗?当然,在上面的例子中,第二个会覆盖第一个。
我为什么想要这个?第一个别名(比示例复杂得多)是从公司服务器公开共享的,我不希望复制它,以防原始别名被修改。
我使用的是C shell。