「findで空のディレクトリを削除する方法」の版間の差分
提供: Linux入門
(ページの作成:「Unix の find コマンドは、ファイルやディレクトリを探す便利なコマンドです。 find には、いろいろなオプションがありますが、...」) |
|||
行29: | 行29: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | find . -type d -empty -exec | + | find . -type d -empty -exec rmdir {} \; |
</syntaxhighlight> | </syntaxhighlight> | ||
xargs を使う場合には find の -print0 オプションを併用することで、スペースが含まれるファイル名(ディレクトリ名)でも正しく削除を実行できます。 | xargs を使う場合には find の -print0 オプションを併用することで、スペースが含まれるファイル名(ディレクトリ名)でも正しく削除を実行できます。 | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
− | find . -type -d -empty -print0 | xargs -0 | + | find . -type -d -empty -print0 | xargs -0 rmdir |
</syntaxhighlight> | </syntaxhighlight> | ||
== 関連項目 == | == 関連項目 == |
2018年5月3日 (木) 16:54時点における最新版
Unix の find コマンドは、ファイルやディレクトリを探す便利なコマンドです。 find には、いろいろなオプションがありますが、空のディレクトリを削除する機能もあります。
読み方
- find
- ふぁいんど
概要
自分で1つ1つのディレクトリを空であること確認して、ディレクトリを rmdir で削除するよりも、 find でサクっと空のディレクトリを削除することができます。
ディレクトリを見つける方法
ディレクトリを見つける方法は、 type オプションでディレクトリを指定するだけです。
find . -type d
空のディレクトリを見つける方法
空のディレクトリを見つける場合には、type オプションでディレクトリを指定し、 empty オプションをつけます。
find . -type d -empty
空のディレクトリを削除する方法
find で空のディレクトリを削除する方法は、空のディレクトリを見つけるオプションに加えて、削除するオプションを指定します。
OSのfindコマンドによっては -delete オプションがないかもしれませんが、FreeBSD, Mac , WSLのUbuntuなどの find では以下のコマンドで 空のディレクトリを削除できます。
find . -type d -empty -delete
上記以外の方法では exec オプションや パイプで xargs + rm を組み合わせるといった手法が考えられます。
find . -type d -empty -exec rmdir {} \;
xargs を使う場合には find の -print0 オプションを併用することで、スペースが含まれるファイル名(ディレクトリ名)でも正しく削除を実行できます。
find . -type -d -empty -print0 | xargs -0 rmdir