Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

Javaアプリからrmコマンド実行

Javaアプリからlinuxへ接続しシェルスクリプトを実行するアプリを作成しております。
ある程度の機能はできたため、不要ファイルを削除するため以下のコマンドをjavaから実行しました
-------------------
rm -rf ~ *.log
-------------------

単純にログファイルを削除したかったのですが、
なぜか.shファイルやエクセルファイルなど関係ないファイルまで
削除されてしまいました。
~の意味などいろいろ調べましたが、拡張子が.log以外のファイルまで
削除された理由が判明しません。
※Safariの閲覧履歴も消えています。

当方Macで作業しております。
恐縮ではありますが、なぜ.log以外のファイルが消えてしまったか
ご教授いただけないでしょうか。
やはり実行したコマンドがよくなかったのでしょうか¨

以上、どうぞよろしくお願いいたします。


2

回答

7669

閲覧

2件の回答

評価

0

あなたのコマンドはちょっと危険な気がする。
本当に消したい場所のディレクトリ指定したほうが良くない?
「~」 チルダはユーザーのホームディレクトリの意味です。
-rオプションは再帰的だから
ユーザーのホームディレクトリ配下の全てのlogファイル消しているんだけど
大丈夫?
以下みたいに対象ディレクトリをフルパスで書いたほうが安全な気がします。
rm -rf /○○○/○○○○/○○○○/*.log


評価

0

つか、コマンドの問題かと疑ってるなら、シェル上で直接実行してみればいい。
Javaとは何の関係もない話だろう。

>ユーザーのホームディレクトリ配下の全てのlogファイル消している
ティルダとワイルドカード指定の「2つ」が引数だろう。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。