使用 移动大目录时mv,有没有办法查看进度 (%)?cpgentoo 上的命令有一个-g显示进度的开关。
像大多数用户一样,我设置了一堆别名来为常用程序提供一组默认标志。例如,
alias vim='vim -X'
alias grep='grep -E'
alias ls='ls -G'
Run Code Online (Sandbox Code Playgroud)
问题是,如果我想用来which查看我的vim/ grep/ ls/etc 来自哪里,别名会妨碍:
$ which vim
vim: aliased to vim -X
Run Code Online (Sandbox Code Playgroud)
这是有用的输出,但不是我在这种情况下要寻找的;我知道vim别名为,vim -X但我想知道它 vim来自哪里。
除了暂时取消定义别名以便我可以使用which它之外,是否有一种简单的方法可以which“解开”别名并在其上运行?
编辑:这似乎which是一个 shell-builtin,在不同的 shell 中具有不同的行为。在 Bash 中,SiegeX 对--skip-alias标志的建议有效;但是,我在 Zsh 上。那里是否存在类似的东西?
命令env ls -al在做什么?
我有一个 Linux 测试,有一个问题:“如何直接运行命令,而不是它的别名?”
我知道存在一些解决方案,例如在命令前加上一些特殊符号,但我忘记了。现在我知道了\。(从这篇文章中阅读)。
但我也记得我在某处读到过,为了摆脱别名,我们可以在命令前加上env. 我做到了,它似乎有效,但我的回答被认为是错误的。我读info和man上env,但并没有理解太多。
env在env <command>没有任何论据的情况下,究竟在做什么env?
在我的conda.sh脚本副本中,我看到以下几行:
if [ -n "${_CE_CONDA}" ] && [ -n "${WINDIR+x}" ]; then
SYSP=$(\dirname "${CONDA_EXE}")
else
SYSP=$(\dirname "${CONDA_EXE}")
SYSP=$(\dirname "${SYSP}")
fi
Run Code Online (Sandbox Code Playgroud)
我很好奇,为什么在前面的一个反斜杠d中dirname。我认为没有必要。这种反斜杠的使用也出现在源文件的其他地方。有没有理由这样做我失踪了?
我安装的一个软件在我的个人资料中插入了一行,内容如下:
[ -s "$SOME_FILE" ] && \. "$SOME_FILE"
Run Code Online (Sandbox Code Playgroud)
我知道 dot.与 同义source,所以我怀疑这只是采购文件,但我以前从未见过\.;它会做其他事情吗?
编辑,关于 DV:搜索“反斜杠点”会导致有关./何时调用可执行文件的问题,并man source导致\.未出现的联机帮助页。我不知道还能尝试什么,因此这个问题。
编辑2:查看相关问题
我已经设置了GREP_OPTIONS="--ignore-case --color",~/.bashrc因为我通常希望 grep 不区分大小写。但是,有时我需要 grep 来实际搜索区分大小写的内容,但手册页没有为此建议参数。
我怎样才能做到这一点?
我有一个功能.bashrc可以自动 sudo 打开我不能写的文件:
vim() {
if [ -w "$1" ]; then
\vim "$1"
else
sudo env HOME="$HOME" \vim -u ~/.vimrc "$1"
fi
}
Run Code Online (Sandbox Code Playgroud)
当文件需要 sudo 时,它工作正常。如果没有,它会递归调用此函数并使用 100% 的 1 个 CPU,直到 I CC。
从这个答案我看到有几个选项,所有这些我都尝试过。一个确实有效:
'vim' "$1" #fails
\vim "$1" #fails
command vim "$1" #Works!
Run Code Online (Sandbox Code Playgroud)
为什么其他选项不能像我期望的那样工作?
(我知道这是重复的,但是很难用当前的问题标题在 SO/SE 上找到我的答案,所以我想发布一个问题,标题是我和其他人可以通过谷歌搜索找到的)
我已经ls使用了ls和 一些标志的别名,但是,我想在另一个别名中使用原始的“普通”版本ls。有没有办法让我调用原始版本ls?