특정 파일을 가진 디렉토리를 지우기 위해, 길이 역순으로 디렉토리 이름 추출해 내기 (Shell)

find ./Projects -name BuildLog.htm -exec dirname {} \; | sort -u | awk ‘{ print length(), “:”, $0 | “sort -r” }’ | cut -d : -f 2,2

디렉토리를 traverse할 때, 특정 파일, buildLog.htm이 있는 폴더의 이름을 unique하게 추출하고, 길이 역순으로 소팅하기.

엄밀하게 directory depth를 이용한 것은 아니지만, 그래도 최대 깊은 디렉토리부터 지울 수있는 스크립트를 만들때 요긴하게 쓰겠다. ㅎㅎ

99 : ./Projects/MainConcept-64-comp/mpeg_sdk_v3_source/mpeg_sdk_v3/mpeg_sdk/encoder/mpeg_vid/Win32/Debug
99 : ./Projects/MainConcept-64-comp/mpeg_sdk_v3_source/mpeg_sdk_v3/mpeg_sdk/encoder/mpeg_vid/x64/Release
100 : ./Projects/MPEG_SDK_SOURCE_AbhjieetVersions_AudioDecodeLib/samples/decoder/streamdecodeA/Win32/Debug
100 : ./Projects/MainConcept-64-comp/mpeg_sdk_v3_source/mpeg_sdk_v3/mpeg_sdk/encoder/pcm_aud/Win32/Release

이런 식으로 뽑아 내고, 거기서 두번째 필드 ( ‘:’로 나누어진) 것을 잘라냄.
cut 명령어가 cut한 것을 없애고 나머지를 보여주는게 아니라, cut한 것을 보여주는거라는 거.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: