0

約 10 個のフォルダーがあり、これらの下にいくつかのサブフォルダーのみを保持し、残りを削除しようとしています。

例:私は持っています

A/1
A/2
A/3
A/4

B/1
B/4
B/5
B/6

各親フォルダー A と B の下にフォルダー 1 と 4 のみを保持しようとしていfind -type d -name 2 -exec rm -rf {} \;ます。各フォルダーを見つけて削除するために使用しています。

フォルダ 1 と 4 だけを保持し、残りを削除する UNIX コマンドはありますか?

4

4 に答える 4

1

除外するという AIG の考えはおそらく正しいですが、find で除外する方法は -o (or) 演算子を使用することです。

find . -mindepth 2 -type d -name 1 -o -name 4 -o -exec rm -rf {} +
于 2015-10-07T19:26:42.840 に答える
0

グロブだけを使用

$ rm -rf [AB]/[^14]
于 2015-10-07T20:57:45.007 に答える
0

これはposix準拠のシステムで機能すると思います:

find . -type d -links 2 \! \( \( -name 1 \) -o \( -name 4 \) \) -exec rm -rf {} \;

これには子ディレクトリのみが含まれ、1 または 4 という名前のディレクトリは除外されます。

于 2015-10-07T19:20:27.117 に答える