min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

bash 正規表現で「フォルダ名が1文字だけのフォルダ」を削除する

f:id:min117:20220219122249p:plain

 

春から東京に転勤が決まったので引っ越し前の整理。

転勤手当てメッチャ付く(コロナ分もつけてほしいが)。

楽しみ。

 

家のサーバは完璧リモートだけで触ることになるから引っ越し前の掃除してディスクの空き容量を確保しておく。

 

フォルダ名が1文字だけフォルダを選んで一括で削除したい。

f:id:min117:20220219121223p:plain

「眠」とか「着」とか「瞬」とかだ。

 

正規表現

bash正規表現でフォルダ名が1文字のフォルダだけ捕まえる。

$ for i in $(ls -shalrt | awk '{print $10}' | grep -v '\.' | grep -v '\..' ); do echo "$i";  if "$i" =~ ^.$ ; then echo "$i"____; fi; done

f:id:min117:20220219115944p:plain

良い感じ。

f:id:min117:20220219120034p:plain

アンダーバーが4つ____ 付いたのは要らないフォルダなので削除する。

それ以外の(TWICEとか)は残す。

 

正規表現で対象を絞り込めてるので、これで一括削除できる。

 

$ for i in $(ls -shalrt | awk '{print $10}' | grep -v '\.' | grep -v '\..' ); do echo "$i"; if "$i" =~ ^.$ ; then echo "$i"____; rm -rf "$i"; fi; done

f:id:min117:20220219122052p:plain

 

カラのフォルダだけ選んで削除するにはこれでできるらしい。

$ for i in $(ls -shalrt | grep drw | awk '{print $10}' | grep -v '\.' | grep -v '\..' ); do echo "$i"; if -z $(ls "$i") ; then echo "$i"____is_EMPTYYY; fi; done

f:id:min117:20220219130818p:plain


カラのフォルダだけが分かる。

f:id:min117:20220219130958p:plain

 

rmdirコマンドEMPTYのときのみ削除してくれるから安全。

$ for i in $(ls -shalrt | grep drw | awk '{print $10}' | grep -v '\.' | grep -v '\..' ); do echo "$i"; if -n $(ls "$i") ; then echo "$i"____; rmdir "$i"; fi; done

 

qiita.com

 

 

 

 

 

 

 

その買うを、もっとハッピーに。|ハピタス