一番近いのは
# rm /path/to/directory/*.*
しかし、拡張子のないファイルでは機能しません...
一番近いのは
# rm /path/to/directory/*.*
しかし、拡張子のないファイルでは機能しません...
回答:
Linuxは拡張機能を使用しません。名前に拡張子を付けるかどうかを決定するのは、ファイルの作成者次第です。Linuxは1バイト目を見て、どの種類のファイルを扱っているかを把握します。
ディレクトリ内のすべてを削除するには、次を使用します。
rm /path/to/directory/*
-r
たとえば、次のオプションを使用できます。
rm -r /path/to/directory/*
また、コンテンツを削除するディレクトリ内のサブディレクトリ(およびそのすべてのコンテンツ)も削除します。そうしないと、ディレクトリを削除していないことを通知するエラーが表示されます。
all files
;)を*.*
意味.
し、名前のどこかを含むすべてのファイルを意味します
*a*
、ゼロ個以上の文字とそれに続くゼロ個以上の文字を意味しますa
。これは、ファイル名にマッチするhappy
、apple
、a
またはla
。
すべてのコンテンツ(すべての内部フォルダーを含む)を含むフォルダーを削除するには:
rm -rf /path/to/directory
フォルダー自体ではなく、フォルダーのすべての内容(すべての内部フォルダーを含む)を削除するには:
rm -rf /path/to/directory/*
または
rm -rf /path/to/directory/{*,.*}
隠しファイル/ディレクトリも確実に削除したい場合。
フォルダ内からすべての「ファイル」を削除するには(内部フォルダを削除しない):
rm -f /path/to/directory/{*,.*}
警告:パスにスペースがある場合は、必ず引用符を使用してください。
rm -rf /path/to the/directory/*
2つの個別のrm -rf
呼び出しに相当します。
rm -rf /path/to
rm -rf the/directory/*
この問題を回避するには、'
単一引用符'
(シェル変数を展開しない)または"
二重引用符"
(シェル変数を展開する)を使用できます。
rm -rf "/path/to the/directory/"*
どこ:
rm
-「削除」の略-f
-「force」の略で、たとえば、アーカイブを削除する場合に確認/プロンプトを表示したくない場合に役立ちます。-r
-「再帰的」の略で、すべてのフォルダーを再帰的にたどってすべてを削除することを意味します。rm -rf /path/to/directory/*
たとえば、フォルダ内の隠しファイルを削除しません.htaccess
。たぶんrm -rf /path/to/directory/.
?試したことがありません。
rm -rf /path/to/directory/.*
指定されたディレクトリ内の隠しファイルのみを削除します。@Rinzwindの回答に対する@danjjlのコメントを見て、隠しファイルも削除するには、実行するshopt -s dotglob
前に実行しrm -rf /path/to/directory/*
ます。
rm -rf /path/to/directory/.*
私のシステムでは、のアイテムが削除されました/path/to
。幸いなことに、私はデータ全体を別のディスクにバックアップしました。言うまでもなく、rm -rf /path/to/directory/.*
コンピューター全体を別の安全な場所にバックアップしていない限り、コマンドを発行しないでください。
ディレクトリ内のすべてのファイル(隠しファイルとサブディレクトリを含む)を削除するには、次を実行します。
rm -rf /path/to/directory/{*,.*}
./
と../
、それはまだ隠しファイルを削除します。
rm -r $(pwd)/{*,.*}
/ path / to / directory内のファイルのみを削除する場合は、次のようにします。
find /path/to/directory -type f -print0| xargs -0 rm
または
find /path/to/directory -type f -exec rm '{}' \;
を使用してロードをfind
実行できます。利点は、パイピングせずに見つかったものをリストrm
できるため、開始する前に削除されるものを確認できることです。
GNU find
-delete
述語として。それでもを使用する場合は-exec
、で置換\;
する+
とrm
呼び出しが収集され、効率が向上します。
ディレクトリ内のすべてのファイルとディレクトリ(非表示のものを含む)を削除するには、次を試してください。
フォルダを削除してから再作成します
rm -rf dir_name && mkdir dir_name
つかいます find
find dir_name -mindepth 1 -delete
ここでは-mindepth 1
、ディレクトリdir_name自体を除外するように指定します。
次のリンクをご覧ください:https :
//unix.stackexchange.com/questions/12593/how-to-remove-all-the-files-in-a-directory
すべてのサブディレクトリとディレクトリ自体も削除する場合は、を使用できますrm -rf /path/to/directory
。ただし、リターンrm -rf
キーを押す前に必ず行をダブルチェックしてください。これにより、スーパーユーザーの権限を持っているときに最初のスラッシュの後に誤ってスペースを挿入した場合など、大量のハボックが発生する可能性があります...
自分で検索すると、この質問は常にGoogleのトップにあるため、
他の答えには、さまざまな問題があります。
それらの一部には.
、..
ノイズが多く、混乱を招き、迷惑なものが含まれます。
それらのいくつかは、隠しファイル(ドットで始まるファイル)を忘れます。
ディレクトリ削除を許可するために、正しい(最も深い)順序で削除しません。
それらは他の(マウントされた)ファイルシステムに降りますが、これはしばしば望ましくありません。
追加のパラメーターを使用して適切に拡張することは困難です(詳細は以下を参照)。
find "${DIR}" -xdev -mindepth 1 -printf "%d\t%y\t%p\0" | sort -z -r -n | cut -z -f3- | xargs -0 -r -- rm -d --
-xdev
マウントへの下降を防ぐために引数などを追加したことに注意してください(/proc
など)。
-depth
か-delete
?人々は私に絶えずこれを支持しているにも関わらず、これらの方法には欠点があります。-prune
サブディレクトリを(問題を追加することなく)許可するのに十分な拡張性がないようです。この方法とは対照的に、挿入することができます
-not \( -path "${DIR}/subdir" -prune \)
内容の削除から-mindepth
除外する引数の前subdir
。
-depth
フラグがありfind
ます。
-delete
一緒にfind
使用しないのですか?-delete
深さ優先です。既にPOSIX以外でPOSIX find
を想定している-printf
ので、同様に使用する-delete
か、または-depth -print0 | xargs -0 rm
-not \( -path "$DIR/subdir" \)
ですが...私はそうですか?どうして?
shopt -s dotglob
前に実行される隠しファイルも削除する場合rm (...)