更改服务器时Linux命令不起作用

时间:2013-09-13 07:01:19

标签: java linux command-line ls sunos

我正在改变我们的系统以使用另一台服务器来获取文件(为跟踪某些内容而生成的文件,并不重要)。该系统基于java,获取这些文件的代码使用的是Linux命令。获取这些文件的代码是:

session = connection.openSession();
session.execCommand("ls -B -A " + filelocation);
output = new BufferedReader(new InputStreamReader(new StreamGobbler(session.getStdout()), "UTF-8"));

但这在我们的原始服务器(x86_64 GNU / Linux)上有效,但在“新”服务器(SunOs 5.10 Generic January)上不起作用。在SunOS服务器上运行此命令时,我得到:

ls: illegal option -- B
usage: ls -1RaAdCxmnlhogrtuvVcpFbqisfHLeE@ [files]

我对命令行的熟悉程度很高,而且我还没有编写原始代码。但这就是我的想法

-A, --almost-all           Do not list implied . and ..
-B, --ignore-backups       Do not list implied entries ending with ~

是否有可选的方法让它在SunOS服务器上运行?

修改

检查每个字符串读取line.endsWith(“〜”);

while ((outputString = output.readLine()) != null) {
    if(!outputString.endsWith("~")){
         fileList.add(outputString);                     
    }
}

1 个答案:

答案 0 :(得分:0)

你可以编写一个shell脚本new_ls调用ls并删除以“〜”结尾的行

或者当您在java中处理结果时,您还可以通过检查每个String读取来忽略从BufferedReader读取的行,如果line.endsWith(“〜”);