同じ開始番号を持つ別のフォルダがある場合はフォルダを削除します

同じ開始番号を持つ別のフォルダがある場合はフォルダを削除します

誤って作成されたフォルダーがいくつかあります。これらのフォルダーを削除したいと思います。

¬ 636
¬ 636.empty
¬ 637
¬ 638.empty
¬ 639
¬ 639.empty

636.emptyこのような状況では、残っている空でないフォルダーを削除してそのままにしておきます。

ターミナルコマンドを実行した後、フォルダー内のすべてのフォルダーsisterを削除したいと思います。

¬ 636
¬ 637
¬ 638.empty
¬ 639

削除されるフォルダーは次のようになります:

¬ 636.empty
¬ 639.empty

25,000いくつかのフォルダがあり、おそらく1000 これらはemptyフォルダと重複しています

答え1

名前が付けられたすべてのディレクトリをループし*empty、同じディレクトリが.empty存在するかどうかを確認し、存在する場合は削除します。

for d in *.empty; do
    [ -d "$d" ] && [ -d "${d%.empty}" ] && rmdir "$d"
done

ディレクトリ名にかかわらずディレクトリが空でない場合は、rmdirに置き換えます;-)rm -rf


代替案find:

find -maxdepth 1 -type d -name '*.empty' \
  -exec sh -c '[ -d "${1%.empty}" ]' find-sh {} \; \
  -delete

ディレクトリが空でない場合は、-deleteに置き換えます。-exec rm -rf {} \;

関連情報