質問: Javaアプリからlinuxへ接続しシェルスクリプトを実行するアプリを作成しております。 ある程度の機能はできたため、不要ファイルを削除するため以下のコマンドをjavaから実行しました ------------------- rm -rf ~ *.log ------------------- 単純にログファイルを削除したかったのですが、 なぜか.shファイルやエクセルファイルなど関係ないファイルまで 削除されてしまいました。 ~の意味などいろいろ調べましたが、拡張子が.log以外のファイルまで 削除された理由が判明しません。 ※Safariの閲覧履歴も消えています。 当方Macで作業しております。 恐縮ではありますが、なぜ.log以外のファイルが消えてしまったか ご教授いただけないでしょうか。 やはり実行したコマンドがよくなかったのでしょうか ̈ 以上、どうぞよろしくお願いいたします。
回答: あなたのコマンドはちょっと危険な気がする。 本当に消したい場所のディレクトリ指定したほうが良くない? 「~」 チルダはユーザーのホームディレクトリの意味です。 -rオプションは再帰的だから ユーザーのホームディレクトリ配下の全てのlogファイル消しているんだけど 大丈夫? 以下みたいに対象ディレクトリをフルパスで書いたほうが安全な気がします。 rm -rf /○○○/○○○○/○○○○/*.log