お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2016-05-30 14:28:02

hoge
メンバ
登録日: 2016-05-20

rm コマンドとゴミ箱について

初心者です。
何卒よろしくお願いいたします。

rmコマンドを使用して削除しました。
削除したファイル・ディレクトリをゴミ箱を探してみたのですが、
ゴミ箱にはありません。

削除してしまったファイル・ディレクトリを復元したい場合はどうすればいいでしょうか?

また、rmコマンドを使用してもゴミ箱に残るように設定する方法はありますか?

ご存知の方がいらっしゃいましたら、よろしくおねがいします。

オフライン

 

#2 2016-05-30 21:04:23

hellfire
メンバ
From: 日本/神奈川県
登録日: 2006-11-21

Re: rm コマンドとゴミ箱について

hoge さん

rm による削除は、Windows でいうところの完全に削除するに該当するため、
通常の方法では復旧できません。
Windows と同様に、ファイル復元ソフトなら復元できるかもしれません。
Ubuntu で利用できるファイル復元ソフトとしては、photorec があります。
パッケージ名は testdisk で、使い方は以下のサイトを参考にしてください。
http://saivainrx.blog62.fc2.com/blog-entry-154.html

また、Windows のファイル復元ソフトと同じく、別のファイルの読み書きが
あれば、復元したいファイルが上書きされることもありますので、
LiveCD 上で、testdisk をインストールしてファイルを復元されることをオススメします。
ディスクの残り容量がたくさんあるのであれば、そう神経質にならなくても、
そのまま testdisk をインストールしても問題ないかもしれませんが…。


さて、ファイル削除の際にゴミ箱に移動する方法ですが、
trash-cli パッケージをインストールして、 rm の代わりに trash コマンドを使います。
インストール方法や復元方法、一覧表示などは以下のサイトに書かれてあります。
http://ubuntuapps.info/blog-entry-415.html

それでも rm は頻繁に使うコマンドなので、ホームディレクトリの
.bashrc に

コード:

alias rm="rm -i"

を登録しておくと良いかもしれません。
削除の度に削除するか確認されます。
確実に削除したい場合は -f オプションを後につければ、
何の確認もなしに削除されます。

オフライン

 

#3 2016-05-31 00:37:10

emasaka
メンバ
登録日: 2008-02-14

Re: rm コマンドとゴミ箱について

> また、rmコマンドを使用してもゴミ箱に残るように設定する方法はありますか?

alias rm=trash

オフライン

 

#4 2016-06-20 20:14:30

ID
新しいメンバ
登録日: 2016-06-09

Re: rm コマンドとゴミ箱について

皆様はじめまして。

とても実用的な話題で参考にさせていただきました。

ありがとうございます。
   

hellfireさん による投稿:

コード:

alias rm="rm -i"

を参考にさせていただきまして、

rm -c

と入力した場合
ゴミ箱の中身が空にしようと思い、

コード:

alias "rm -c"="trash-empty"

と登録してみました。
すると、端末起動した際、毎回

bash: alias: `rm -c': 無効なエイリアス名です

と表示されるようになりました。

rm -c

と入力した場合、

Usage: trash [OPTION]... FILE...

trash: error: no such option: -c

と表示されます。

rm -c

と入力した場合、ゴミ箱の中身を空にするにはどうすればいいでしょうか。

何卒よろしくお願いします。

オフライン

 

#5 2016-06-20 23:21:41

hellfire
メンバ
From: 日本/神奈川県
登録日: 2006-11-21

Re: rm コマンドとゴミ箱について

ID さん

Linux ではスペースを区切り文字として判断しています。
よって、rm -c の -c はオプションとして認識されるため、
無効なエイリアスとなります。


私であれば、rm -c と打つよりも、rmc というエイリアスで登録してしまいますが…。

どうしてもというのであれば、

コード:

alias "rm\ -c"="trash-empty"

として、スペースをエスケープするという方法があります。
ただし、呼び出すときもエスケープする必要があって
スマートではありません。

あるいは、以下のスクリプトを書いて実行権限を付与。
そして、このスクリプトの入っているディレクトリを
パスの先頭に持ってこれば、可能であります。

コード:

#!/bin/bash

if [ "$1" = "-c" ]; then
    trash-empty
else
    /bin/rm $*
fi

ただし、セキュリティー上問題がありますし、
本来の rm の挙動 (引数の問題や rm を利用しているプログラム内での挙動) が
変わる可能性があります。

また、IFS で区切り文字を変更するという手もありますが、
これはスペースで引数の区切りが使えなくなるため、
かなりトリッキーな独自仕様になってしまいます。

ご参考までに。

オフライン

 

#6 2016-07-21 21:43:48

ID
新しいメンバ
登録日: 2016-06-09

Re: rm コマンドとゴミ箱について

hellfire様
返信遅くなってしまいまして大変申し訳ありません。

hellfire様 による投稿:

ただし、セキュリティー上問題がありますし、
本来の rm の挙動 (引数の問題や rm を利用しているプログラム内での挙動) が
変わる可能性があります。。

やはり、スクリプトを自作するなどイレギュラーでトリッキーな仕様になるのですね。

とても勉強になりました。
とても頼れるになる先輩たちが丁寧に教えて下さるため
大変心強いです。
今後も何卒よろしくお願いいたします。

オフライン

 

#7 2016-07-21 21:45:53

ID
新しいメンバ
登録日: 2016-06-09

Re: rm コマンドとゴミ箱について

本当にありがとうございました。

オフライン

 

Board footer

Powered by FluxBB