'testdir must be an absolute path' 在 fish shell 中使用 'ls' 命令后打印
'testdir must be an absolute path' printed after using 'ls' command in fish shell
每次我在 fish shell 中使用 ls
命令时,它都会生成行“testdir must be an absolute path
”,然后再像往常一样列出目录的内容 ls
调用就可以了。无论我所在的目录或传递给 ls
.
的选项如何,都会发生这种情况
我在我的系统和互联网上搜索了这条消息,我在一个 libfuse 的测试中找到了它 files。 运行 ps -ef | grep fuse
产生:
mdko 3498 3430 0 20:36 ? 00:00:00 /usr/lib/gvfs/gvfsd-fuse /run/user/1000/gvfs -f -o big_writes
的确,运行ning dmesg | grep fuse
显示:
[ 3.771372] fuse init (API version 7.26)
当我运行ls
在bash或zsh时,运行ningls
时不会出现“testdir must be an absolute path
”的消息.我还通过 strace
-ing ls
调用和 fish
过程进行了其他最小尝试来调查问题,但没有成功。
这个字符串是从哪里来的,我该如何阻止它?
(运行 Ubuntu 17.10 64位,小鱼2.6.0版)
Fish 提供了一个 ls
包装函数,如果输出要发送到 tty(即如果 isatty
returns true),它会打开颜色和指示器。
很可能,您有一个命令或函数覆盖了此处的某些内容。
检查 type ls
的输出以查看 ls
函数的定义:
ls is a function with definition
# Defined in /usr/share/fish/functions/ls.fish @ line 6
function ls --description 'List contents of directory'
set -l param --color=auto
if isatty 1
set -a param --indicator-style=classify
end
command ls $param $argv
end
由于您的 "ls" 命令在 bash 中有效,所以可能不是这样(运行 command ls --color=auto --indicator-style=classify somedir
确认)。
所以你会检查其他命令。 set
可能不是,因为如果它被覆盖,您将遇到更大的问题。 isatty
是可能的,那运行s command test
也是一个候选。使用 type
找出鱼在叫什么,然后改变它。
例如有可能你在某个地方有一个 test
命令,它不是 POSIX 风格的 test
,而是 运行 libfuse 测试的东西。如果是这样,请重命名或删除它。
每次我在 fish shell 中使用 ls
命令时,它都会生成行“testdir must be an absolute path
”,然后再像往常一样列出目录的内容 ls
调用就可以了。无论我所在的目录或传递给 ls
.
我在我的系统和互联网上搜索了这条消息,我在一个 libfuse 的测试中找到了它 files。 运行 ps -ef | grep fuse
产生:
mdko 3498 3430 0 20:36 ? 00:00:00 /usr/lib/gvfs/gvfsd-fuse /run/user/1000/gvfs -f -o big_writes
的确,运行ning dmesg | grep fuse
显示:
[ 3.771372] fuse init (API version 7.26)
当我运行ls
在bash或zsh时,运行ningls
时不会出现“testdir must be an absolute path
”的消息.我还通过 strace
-ing ls
调用和 fish
过程进行了其他最小尝试来调查问题,但没有成功。
这个字符串是从哪里来的,我该如何阻止它?
(运行 Ubuntu 17.10 64位,小鱼2.6.0版)
Fish 提供了一个 ls
包装函数,如果输出要发送到 tty(即如果 isatty
returns true),它会打开颜色和指示器。
很可能,您有一个命令或函数覆盖了此处的某些内容。
检查 type ls
的输出以查看 ls
函数的定义:
ls is a function with definition
# Defined in /usr/share/fish/functions/ls.fish @ line 6
function ls --description 'List contents of directory'
set -l param --color=auto
if isatty 1
set -a param --indicator-style=classify
end
command ls $param $argv
end
由于您的 "ls" 命令在 bash 中有效,所以可能不是这样(运行 command ls --color=auto --indicator-style=classify somedir
确认)。
所以你会检查其他命令。 set
可能不是,因为如果它被覆盖,您将遇到更大的问题。 isatty
是可能的,那运行s command test
也是一个候选。使用 type
找出鱼在叫什么,然后改变它。
例如有可能你在某个地方有一个 test
命令,它不是 POSIX 风格的 test
,而是 运行 libfuse 测试的东西。如果是这样,请重命名或删除它。