• ベストアンサー

RHL7で多数のファイル削除(rm)方法

Red Hat Linux7でHD容量が足りなくなったので、新しいHDをフォーマット後あるディレクトリにマウントしました。 この後、古いHD内のファイルを全て削除しようと思い、rm -r [ディレクトリ名]を実行しましたが、消すファイルを聞いてきて、いちいちy、リターンを押さなければなりません。数が多いので面倒です。 良い方法を教えてください。 rm -rは強制削除だとおもうのですが‥‥。 削除コマンドなので、ビビッています。 RHL7の素は、できるlinuxサーバという本に添付されていたものです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ken2
  • ベストアンサー率36% (86/235)
回答No.6

1つのコマンドに複数のaliasを設定することはできません(設定されるのは、1つだけです) alias rm="mv /*/trash/ と alias rm=rm -i を使うとすれば、 alias rm="mv -i /*/trash/ というところでしょうか? 要するに何をしたいかということだけです。 rm というコマンドを実行したらどういう動作をするかを記述するだけです。 もともとは、rmという削除コマンドをデフォルトで、オプションをつけずにどんな動作をさせるかだけです。キーを打つのをできるだけ少なくしたいと考えているだけです。 あまり、ややこしく考えないほうがいいと思います。

chrilake
質問者

お礼

ken2さん、度々のご回答ありがとうございました。 rm -i + mv /*/trash/ を mv -i /*/trash/ に置き換えれば良いという、"ひらめき"がありませんでした。 みなさん、ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

  • mph
  • ベストアンサー率54% (39/72)
回答No.5

あとの設定(shellの設定ファイルで末尾に近いほう)が有効です。 設定してsource等で設定ファイルを読み込んでaliasコマンド で確認できます。 ごみ箱の設置場所等に工夫するとより使いやすくなりますよ。 普段良く使うデスクトップ環境と統一するとか(GNOMEやKDEの場合)

chrilake
質問者

お礼

当方の補足にご回答頂きまして、ありがとうございました。 alias設定後、source(コマンド?)でそれを読み込んでから、という事なのですか…(良く調べてみます)。 まだ、GNOME等もインストールしていませんので今度試してみます。 自分でどんどんカスタマイズしなければなりませんね。 貴重なアドバイスをありがとうございます。 また、何かと宜しくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • k-841
  • ベストアンサー率27% (129/465)
回答No.4

UNIX系のOSを触る人がまず知らなくてはいけないコマンドは、man です。 man rm すれば、ほとんどが解決します。 それによれば、-r オプションはディレクトリツリー以下まで消す、という意味です。 また、-f オプションは、強制削除、という意味です。 私の手元の man によると、-f オプションについて The -f option overrides any previous -i options. とあるので、エイリアスの影響は受けないと思うのですが、 エイリアスの -i の影響を受けるような rm でしたら、 rm の前に \ (バックスラッシュ) をつけます。 \rm -fr *

chrilake
質問者

お礼

fオプションは、その様な意味があったのですね。 rm -rf *で削除できた意味がハッキリしました。 ありがとうございました。 manは英語なのでついつい見るのが億劫になってしまってい、すみません。 何かとお茶を濁してしまいそうですが、また宜しくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。
  • ken2
  • ベストアンサー率36% (86/235)
回答No.3

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がないとファイルしか削除できません。

chrilake
質問者

補足

ご回答を詳細に頂きましてありがとうございました。 不束ながらaliasの事をご回答頂くまで、詳しく知りませんでした。 度々恐れ入りますが、小生の前の質問で、ゴミ箱をつくりaliasでmvの設定をして活用するご回答を頂いた事がありました。(http://www.okweb.ne.jp/kotaeru.php3?q=130440) rmに対し、alias rm="mv /*/trash/ と設定してゴミ箱も作ってみたいのですが、rmに対して'rm -i'と、2つのaliasを張る事については、問題ないのでしょうか? 宜しくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

消したいディレクトリに行って #rm -rf * としてみるといかがでしょうか。 私はハードディスクを増設するときにこのコマンドで/home以下を 削除しました。(/homeだけに、その前にコピーを取りましたが…)

chrilake
質問者

お礼

早速のご返答、ありがとうございました。 rm -rf * で、ディレクトリまできれいに削除できました。 これをrm -rf / としてしまったり、消したいディレクトリに行かないで、実行してしまうとしまうと恐ろしい事になるわけですね。 (なんか、うっかりしてしまいそうです・…) お陰様で解決しました。 また、宜しくお願いします。

全文を見る
すると、全ての回答が全文表示されます。
  • oja
  • ベストアンサー率29% (78/261)
回答No.1

 aliasで、-i optionが設定されてませんか?  もし、aliasに設定されているなら解除するか、コマンドの前にバックスラッシュを付けると通常コマンドになります。  または、削除するディレクトリ内に移って、rm * で消してみたら

chrilake
質問者

お礼

早速のご返事、ありがとうございました。 aliasで各コマンドの制限がなされている事を知りませんでした。 ご指摘のとおり、-iオプションが設定されていました。 また宜しくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • .で始まるファイルが、rm -rfで削除できない。

    .で始まるファイルが、rm -rfで削除できないのですが、なぜでしょうか? どうしたら削除できますか? 削除したいのは、ホームディレクトリに出来る.ファイルなのですが、Xは使用せず、TELNETやSSH、その他でもアクセスしないユーザーの物なので、削除したいのです。

  • ~以外を削除する場合(rmコマンド)

    linuxのコマンドで ~以外のファイル、ディレクトリを全て削除したい時は どのような記述をすれば良いのでしょうか? シェルスクリプトではなくrmコマンド1つで削除したのいですが… 例: tar以外のファイル・ディレクトリを    すべて削除したい場合など どなたかご存知の方がいらっしゃったら 教えてください。よろしくお願い致します。

  • Unixでファイルを削除するとき、「~~を除いて」削除する、は?

     Unixで、カレントディレクトリにたくさんのファイルがあって、 そのうちの一つとか二つのファイルのみ残して あとはみんな削除したいとき、 どのようにすればよいのでしょうか。 rm * とすると、みんな消えてしまいます。 もっとも、私の環境では .cshrcに alias rm 'rm -i'  と書いてあるため、削除するときにいちいち確認を取ってきます。 そのときに 削除しないものには n(no)と入力すればよいのですが、 ファイルがたくさんあると いちいち見るのも面倒になって、 y(yes)をどんどん入力してしまって削除してしまう恐れがあります。 コマンドを入力するときに 削除しないものを指定できないでしょうか。 Unixの初級者なので、そのおつもりでご解答いただくとうれしいのですが。。。

  • シェルスクリプトでファイル削除したい

    シェルスクリプト初心者です 今回、Linuxサーバ側にある複数のファイルを削除する 必要が出てきました このため、シェルスクリプトを書いて複数(2000程度) のファイルを削除しようとして試験をしています 試験のLinuxサーバ側の/root の中にfile1,file2・・・ 等々を置いています そこに次のようなスクリプトを記載して ファイルが置かれている場所と同じ/rootに置いて実行させるのですが ************** スクリプト ******** #!/bin/sh echo "start" # # rm F1010002.JPG rm F1010003.JPG rm F1010004.JPG echo "end" ****************************** 下記のようなエラーが出ます ****************************************** start rm: cannot lstat `F1010002.JPG\r': そのようなファイルやディレクトリはありません rm: cannot lstat `F1010003.JPG\r': そのようなファイルやディレクトリはありません rm: cannot lstat `F1010004.JPG\r': そのようなファイルやディレクトリはありません end ****************************************** サーバ側にSSHで入って、 # rm F1010002.JPG とひとつひとつ打鍵していくとファイルは削除されます スクリプトの間違い等あるのでしょうか 教えていただければ幸いです なお、ファイル数2000件程度のスクリプトを記載する方法は 別のソフトを利用して作成できるので・・・その件はいいのですが・・・

  • Linuxを削除するには?

    友人のノートPCからRed Hat Linux9.0を削除してくれと言われました。 そのノートPCは、WIndowsXPとRed Hat Linux9.0のマルチブート環境になっています。 私はてっきり、ドライブCとドライブDとに分かれており、Linuxの入っているドライブをフォーマットすればいいのかと思っていましたが、どうやらWindows上からは認識されないらしく表示されません。 Lunixをいじった経験はないのですが、Linuxをフォーマットし、その部分を空き容量としてWindowsで使用するにはどうすればいいのでしょうか?

  • rm,cpコマンドの置き換えについて

    linux初心者のため、困っています。 組み込みで、ディレクトリの削除とコピーを行いたいのですが、置き換えができません。どなたか教えてください。 コマンドでは以下のようになるのですが… (1)rm -r -f /ディレクトリ名/ (2)cp -r -f /元ディレクトリ名/ /先ディレクトリ名/ 無知で申し訳ありませんが、よろしくお願いします。

  • rmコマンドについて

    rm -r dir_hoge ※dir_hoge = フォルダ名 -- dir_hoge |-- 1.dat `-- 2.dat このような場合 rm: descend into directory 'dir_hoge'? y rm: descend into directory '1.dat'? y rm: descend into directory '2.dat'? y このように、毎回「y/n」の質問をされます。 数千ものファイルがあった場合「y」を1000回おさなければならないのでしょうか? 簡単なものがあれば宜しくお願いします。 目的は「ディレクトリを簡単に削除したい」です。

  • フォルダが削除できない

    こんばんは。 Windowsに共有ディレクトリを作成し、専用のユーザーとパスワードも作成し、Linuxからmountしました。 (mount後の読み書きは正常にできております) あるプロジェクトのバックアップをしたいと思い、シェル作成とテストをしながら、上記の共有フォルダにファイルやディレクトリをコピーしたり削除したりしておりました。 で、突然あるディレクトリだけが削除できなくなってしまいました・・・。 (LinuxからもWindowsからも削除できません) rmdirをすると、「ディレクトリが空ではありません」と怒られます。 (ls -laで見ても空です) rm -rfでも同じメッセージで削除できません・・・。 (rmなのに???) 削除できないフォルダにファイルを作成したりは、何故かできます。 フォルダを削除した後、ハードリンクの数が「0」です・・・。 (上記エラーメッセージ表示後に確認しました) なんですかね?これ。 今後はtarしてからWindows側にコピーする予定ですので、このフォルダ (実際には、ちょっとパスが深いので、マウントポイント以下は全て) を削除してしまいたいのですが・・・。 オーナーはrootです。 chmodは効きません・・・。 (777指定しても反映されてない、まぁroot作業なので関係ないですが・・・) Linuxに詳しい方、ご教示くださいますよう、よろしくお願い致します。

  • 「*.txt」以外の全てのディレクトリ・ファイルを削除したい(Bシェルにて)

    rm -rコマンドを使用して、「*.txt」以外の全てのディレクトリ・ファイルを削除したいのですが、正規表現の使い方が分かりません(それ以外を対象にするという方法が分かりません)。 またできれば、「*.txt」以外のディレクトリ・ファイルが存在しなくてもリターンコードは0が返ってきてほしいです。 どのようにすれば良いのでしょうか? 環境は、SolarisのBシェルです。

  • 古いファイルやディレクトリを消したい(Linux)

    Linux で不要な古いファイルやディレクトリを消したいのですが、 どのようにすればいいのかわかりません。 具体的にはあるディレクトリの中にある 新旧混在となったファイルやディレクトリの中から 1ヶ月以上前に作ったファイルやディレクトリを消すといったことが したいのです。 もちろんディレクトリの中に新しいファイルがいたら、 親ディレクトリは残すことを考えています。 find で -ctime +7 というオプションをつけて検索すれば 候補が得られるというところはわかったのですが、 ディレクトリもいるので簡単に rm では消せません。 rm -r なんてしたら新しいファイルも消しちゃうので・・・ どうか、お知恵をお貸しください。

「筆まめ」が起動しない
このQ&Aのポイント
  • 「筆まめのアイコンをクリックすると初期画面が出ますがつながりません。
  • すると「筆まめVer27が起動していますVer27を終了してから操作して下さい」のコメントが表示されます。
  • 再起動しても、タスクマネージャーでソフトを終了しても改善しません。
回答を見る