2016-08-13 12 views
0

私はSOで検索しようとしましたが、次のコマンドの違いを見つけることができませんでした。 dirという名前のディレクトリがある場合、以下のコマンドの違いは?ディレクトリにrm -rfを使用する

  • rm -rf dir/*
  • rm -rf dir/
  • rm -rf dir

のコマンドを実行しているIDが所有者かどうかさえもグループ内に存在しない場合もどのディレクトリ上のユーザー権限は、結果に影響しません所有者の?

私が作業しているシェルスクリプトでrm -rfを実行するコマンドを追加しています。上記のコマンドの違いを理解する上で助けが必要です。

+2

システム管理者に問い合わせるか[スーパーユーザー](http://superuser.com/tour)にお尋ねください。 Stack Overflowは、プロと熱心なプログラマーのための質疑応答サイトです。 – Cyrus

+0

@Cyrusは "あなたのシステム管理者に尋ねる"。このアドバイスに同意するかどうかわからない同様に、人々がプログラミングの質問をするときに "上級開発者に質問する"と言うこともできる。 – AtomHeartFather

+0

許可されているが、スーパーユーザーへのポインタは議論/これは、ソフトウェアの作成プロセス、またはその目的に固有のツールについての質問ではありません。 (http://unix.stackexchange.com/もトピックフォーラムとして認定される可能性があります)。 –

答えて

8
  • rm -rf dir/*

    (ディレクトリ自体を削除せずに)ディレクトリ内のファイルを削除します。 注:,hidden filesは削除されません。

  • rm -rf dir/

    末尾のスラッシュはdirがディレクトリであることを示しています。それがファイルの場合、削除されません。上記のものと同じ、あなたの場合は

  • rm -rf dir

    は、あなたのケースでは、これはrm -rf dirと同じですが、それは異なり、一般的に(下記参照します)。一般的に

それはdir/dir/.と同等であることを意味し、解像度を、パス名になると、このようrmなどのツールは、通常IEEE/OpenGroup standardsに従ってください。その1つの意味は、dirがディレクトリrm -rf dir/へのシンボリックリンクである場合、rm -rf dirはシンボリックリンクのみを削除するのに対して、ディレクトリ(隠しファイルを含む)の内容は削除しますが、リンクやディレクトリ自体は削除しません。

削除するファイルまたはディレクトリに対してwriteのアクセス許可が必要で、rmがファイルを削除するために通過する必要があるディレクトリに対してexecのアクセス許可が必要です。 Unixファイルシステムのアクセス許可hereについてもっと読むことができます。

+0

したがって、私の質問や上記の応答の2番目と3番目のコマンド、** rm -rf dir/** **、** rm -rf dir **のアクションを実行するのに有効なアクセス許可を考慮すると、両方ともディレクトリを削除しますか? – adbdkb

+0

@adbdkbはい、そのようにする必要があります。 – AtomHeartFather

関連する問題