- ベストアンサー
RHL7で多数のファイル削除(rm)方法
Red Hat Linux7でHD容量が足りなくなったので、新しいHDをフォーマット後あるディレクトリにマウントしました。 この後、古いHD内のファイルを全て削除しようと思い、rm -r [ディレクトリ名]を実行しましたが、消すファイルを聞いてきて、いちいちy、リターンを押さなければなりません。数が多いので面倒です。 良い方法を教えてください。 rm -rは強制削除だとおもうのですが‥‥。 削除コマンドなので、ビビッています。 RHL7の素は、できるlinuxサーバという本に添付されていたものです。 よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
1つのコマンドに複数のaliasを設定することはできません(設定されるのは、1つだけです) alias rm="mv /*/trash/ と alias rm=rm -i を使うとすれば、 alias rm="mv -i /*/trash/ というところでしょうか? 要するに何をしたいかということだけです。 rm というコマンドを実行したらどういう動作をするかを記述するだけです。 もともとは、rmという削除コマンドをデフォルトで、オプションをつけずにどんな動作をさせるかだけです。キーを打つのをできるだけ少なくしたいと考えているだけです。 あまり、ややこしく考えないほうがいいと思います。
その他の回答 (5)
- mph
- ベストアンサー率54% (39/72)
あとの設定(shellの設定ファイルで末尾に近いほう)が有効です。 設定してsource等で設定ファイルを読み込んでaliasコマンド で確認できます。 ごみ箱の設置場所等に工夫するとより使いやすくなりますよ。 普段良く使うデスクトップ環境と統一するとか(GNOMEやKDEの場合)
お礼
当方の補足にご回答頂きまして、ありがとうございました。 alias設定後、source(コマンド?)でそれを読み込んでから、という事なのですか…(良く調べてみます)。 まだ、GNOME等もインストールしていませんので今度試してみます。 自分でどんどんカスタマイズしなければなりませんね。 貴重なアドバイスをありがとうございます。 また、何かと宜しくお願いします。
- k-841
- ベストアンサー率27% (129/465)
UNIX系のOSを触る人がまず知らなくてはいけないコマンドは、man です。 man rm すれば、ほとんどが解決します。 それによれば、-r オプションはディレクトリツリー以下まで消す、という意味です。 また、-f オプションは、強制削除、という意味です。 私の手元の man によると、-f オプションについて The -f option overrides any previous -i options. とあるので、エイリアスの影響は受けないと思うのですが、 エイリアスの -i の影響を受けるような rm でしたら、 rm の前に \ (バックスラッシュ) をつけます。 \rm -fr *
お礼
fオプションは、その様な意味があったのですね。 rm -rf *で削除できた意味がハッキリしました。 ありがとうございました。 manは英語なのでついつい見るのが億劫になってしまってい、すみません。 何かとお茶を濁してしまいそうですが、また宜しくお願い致します。
- ken2
- ベストアンサー率36% (86/235)
RedHat Linuxは、(もしかしたら他のもそうかもしれないけれど)rmコマンドに対してデフォルトで、aliasが設定されています。aliasコマンドを使うとわかります。 # alias alias cp='cp -i' alias l.='ls -d .[a-zA-Z]* --color=tty' alias ll='ls -l --color=tty' alias ls='ls --color=tty' alias mv='mv -i' alias rm='rm -i' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' これは、rmコマンドを使用すると実際には、rm -iというコマンドを使用するということです。rm -iとは、削除時に確認してくるというオプションです。初心者用に設定されているということです。UNIXは、削除すると戻ってきませんから。(ごみ箱はないということです) 多くのファイルを削除するときは、面倒なので、下記のコマンドでこの設定をはずします。 # unalias rm これで、removeコマンドは、本来の親切でないざくっと削除するコマンドに戻ります。これは、ログインしなおすまで有効です。 ちなみにこの設定は、^/.bashrcの中に記述されていますので、その部分を削除すれば初期値は変わります。 # ls -a . .ICEauthority .Xresources .bash_history .bash_profile .cshrc .gnome-desktop .mc .sawfish .xauth .. .Xauthority .amandahosts .bash_logout .bashrc .gnome .gnome_private .qti18nrc .tcshrc .xsession-errors # cat .bashrc # .bashrc # User specific aliases and functions alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi ちなみに rm -rは、ディレクトリごと削除するオプションです。-rがないとファイルしか削除できません。
補足
ご回答を詳細に頂きましてありがとうございました。 不束ながらaliasの事をご回答頂くまで、詳しく知りませんでした。 度々恐れ入りますが、小生の前の質問で、ゴミ箱をつくりaliasでmvの設定をして活用するご回答を頂いた事がありました。(http://www.okweb.ne.jp/kotaeru.php3?q=130440) rmに対し、alias rm="mv /*/trash/ と設定してゴミ箱も作ってみたいのですが、rmに対して'rm -i'と、2つのaliasを張る事については、問題ないのでしょうか? 宜しくお願い致します。
- henachoko
- ベストアンサー率0% (0/5)
消したいディレクトリに行って #rm -rf * としてみるといかがでしょうか。 私はハードディスクを増設するときにこのコマンドで/home以下を 削除しました。(/homeだけに、その前にコピーを取りましたが…)
お礼
早速のご返答、ありがとうございました。 rm -rf * で、ディレクトリまできれいに削除できました。 これをrm -rf / としてしまったり、消したいディレクトリに行かないで、実行してしまうとしまうと恐ろしい事になるわけですね。 (なんか、うっかりしてしまいそうです・…) お陰様で解決しました。 また、宜しくお願いします。
- oja
- ベストアンサー率29% (78/261)
aliasで、-i optionが設定されてませんか? もし、aliasに設定されているなら解除するか、コマンドの前にバックスラッシュを付けると通常コマンドになります。 または、削除するディレクトリ内に移って、rm * で消してみたら
お礼
早速のご返事、ありがとうございました。 aliasで各コマンドの制限がなされている事を知りませんでした。 ご指摘のとおり、-iオプションが設定されていました。 また宜しくお願いします。
お礼
ken2さん、度々のご回答ありがとうございました。 rm -i + mv /*/trash/ を mv -i /*/trash/ に置き換えれば良いという、"ひらめき"がありませんでした。 みなさん、ありがとうございました。