[Linux,rm]000から100の連番ディレクトリの下に存在する subdir ディレクトリを削除する方法

記事内に広告が含まれています。

Linux のコマンドラインで、特定の範囲のディレクトリ内に存在する subdir ディレクトリを削除する方法について説明します。今回は 000 から 100 のディレクトリを対象とし、存在しない番号はスキップします。

例えば、002は存在しないのでスキップします

.
├── 000/subdir
├── 001/subdir
├── 003/subdir
└── 010/subdir

方法 1: for ループと条件分岐を使用

for i in $(seq -w 0 100); do [ -d "$i/subdir" ] && rm -rf "$i/subdir"; done
  • for i in $(seq -w 0 100):
    • seq コマンドを使って 000 から 100 までの連番を生成します。-w オプションは、3桁のゼロパディングを行います。
  • [ -d "$i/subdir" ]:
    • -d オプションは指定されたパスがディレクトリであるかどうかを確認します。
    • $i/subdir が存在するかどうかをチェックします。
  • && rm -rf "$i/subdir":
    • && 演算子は、前の条件が真(ディレクトリが存在する)場合に次のコマンドを実行します。
    • rm -rf コマンドは、ディレクトリとその内容を再帰的に強制的に削除します。

まとめ

find コマンドやシェルのパターンマッチング機能と組み合わせることで、正規表現に基づいたファイルの削除を実現できます。

以下の記事では、mkdirで連番ディレクトリの下にディレクトリを新規作成する方法をまとめています。

Linux
スポンサーリンク