0

現在、ファイルを取得するために別のサーバーを使用するようにシステムを変更しています (何かを追跡するために生成されたファイルであり、重要ではありません)。このシステムは 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);                     
    }
}
4

1 に答える 1

0

ls を呼び出して "~" で終わる行を削除するシェル スクリプト new_ls を作成することもできます。

または、Java で結果を処理する場合、line.endsWith("~");

于 2013-09-13T07:43:05.553 に答える