使用smbclient -c命令和ls -l选项

3

我正在尝试从远程服务器获取文件夹列表,但由于权限问题,无法将远程服务器挂载到我的本地计算机上。

我使用了

smbclient "//165.186.89.21/DeptDQ_141Q_FOTA" "--user=myid" -c 'ls;'

获取文件夹列表的命令执行成功。

但实际上,我想在上述命令行中使用 ls -l 命令,当我尝试使用该命令行获取结果时:

smbclient "//165.186.89.21/DeptDQ_141Q_FOTA" "--user=LGE\final.lee" -c 'ls -l;'

它返回

NT_STATUS_NO_SUCH_FILE listing \-l

            64000 blocks of size 16777216. 6503 blocks available

我该如何使用带有ls -l选项的smbclient操作符?请帮帮我!

这是一个使用问题,而不是编程问题。因此,最好将其放在SuperUser上,而不是StackOverflow上。 - Charles Duffy
1个回答

6

smbclient ls并不会运行一个原生的ls命令,而是调用内置的功能。因此,它不支持原生的符合POSIX标准的ls命令所提供的通常选项。

因此,你无法这样做。

如果你的目标是读取元数据,请考虑尝试使用smbclient stat [filename]子命令(如果你的服务器支持UNIX扩展),否则使用smbclient allinfo [filename]


1
Windows Server不支持UNIX CIFS调用。您不能在Windows Server上使用stat。 - leuage
@是的,正确的。OP在问题中没有指定Windows Server,并接受了这个答案,表明它解决了他们的问题。话虽如此,我已经修改了答案,也指定了smbclient allinfo - Charles Duffy
OP正在寻找类似于ls-l的命令(即权限、用户名、大小、月份、日期、时间和文件名),但在smbclient中不可能实现。allinfo与ls-l不相似。 - leuage
@是的,OP传递单个文件名(并且他们接受了这个答案)的事实意味着他们显然不想获得完整列表,而是关于该命名文件的元数据。如果您有一个与他们不同的问题(考虑到正文),那就是一个单独的问题,应该这样问(尽管在某些地方它是相关的,而不是在这里)。 (我也同意编辑标题以更好地反映他们实际问题的建议可能会被要求)。 - Charles Duffy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接