리눅스: bash스크립팅
2016.01.29 21:50
쉘 스크립팅도 배워놓으면 재미있을거 같아요.
저만 그런지 모르겠지만 여러가지 다운받으면 다운로드 폴더가 지저분해지는데
다운로드 폴더들을 정리해주는 간단한 스크립트를 만들어봤습니다.
특히 월페이퍼를 따로 저장하게 했습니다.
폴더는 Pictures/wallpapers로 되어 있는데 원하는대로 바꾸심되고,
기준은 allpaper,HD,ackground등의 스트링이나 1900x1000 등의 디멘젼스트링을 검색합니다.
이미지라이브러리를 이용하면 더 정확할텐데 그거까진 필요없을거 같네요
다른 화일들도 이런식으로 분류할수 있습니다. 음악화일들은 메타데이터들을 참고해서 분류한다든가...
다큐먼트들도 문자열검색으로 따로 분류한다든가 활용하실수 있어요.
파이핑해서 넘길때 쿼트익스팬션부분이 어떻게 되는지 모르겠어서 한참 들여다봐야하더군요
사용자폴더에 bin 을 만드시고
chmod +x 로 화일에 실행권한 주신다음 쓰시면 됩니다.
*bash라서 다른 쉘에선 안될수도 있고요.
위험할수 있으니 자기머신이나 자신계정에서만 꼭 이해하시고 공부용도로 쓰시기 바랍니다.
1 #! /bin/bash
2
3 cd "$HOME/Downloads"
4 wppr_dir="$HOME/Pictures/wallpapers"
5 # create wallpaper dir.
6 mkdir -p $wppr_dir
7
8 #replace spaces in file name with _:fall back to this option when in trouble
9 #ls *.{jpg,png} | rename 's/ /_/g'
10
11 re=$( ls *.{jpg,png} | egrep 'allpaper|ackground|HD|([0-9]{4}x[0-9]{3,4})' )
12 echo "$re"
13 while read -r line;
14 do
15 mv -i "$line" $wppr_dir
16 done <<< "$re"
17
18 # handle the rest..
19 mv -i *.{avi,mkv,mp4,m4a} "$HOME/Videos"
20 mv -i *.{pdf,odt,doc} "$HOME/Documents"
21 mv -i *.{flac,mp3,odd} "$HOME/Music"
22 mv -i *.{jpg,png} "$HOME/Pictures"
혹시 개선점이 있으시면 나눠보아요
코멘트 3
번호 | 제목 | 작성자 | 작성일 | 조회 |
---|---|---|---|---|
181 | 리눅스: 가상화폐 가격 알아보기 | 영진 | 10.09 | 4052 |
180 | 리눅스: xfce4 화면 확대하기 | 영진 | 09.29 | 3853 |
179 | USB Type-C: 극히 조심하세요. [7] | 사드사랑 | 07.20 | 5281 |
178 | 문리더 비슷한 iOS 용 텍스트 리더 [3] | matsal | 07.18 | 6487 |
177 | USB Type-C: 도깨비 방망이 ? [14] | 사드사랑 | 03.07 | 5829 |
176 | 리눅스: 데스크탑 노티피케이션 이용하기 [2] | 영진 | 06.24 | 7108 |
175 | 리눅스: xfce4터미널 폰트조정하기 [4] | 영진 | 06.18 | 7251 |
174 | 리눅스: vim을 이북리더로 쓰기 [2] | 영진 | 06.15 | 7133 |
173 | 리눅스: 온라인 사전을 사용하자 [1] | 영진 | 06.11 | 6860 |
172 | 리눅스: 뉴스를 터미널에서 보자 [2] | 영진 | 06.10 | 6765 |
171 | 리눅스: 대기오염지수 보기 [3] | 영진 | 06.08 | 6534 |
170 | 리눅스: 간편하게 날씨예보보기 [2] | 영진 | 06.06 | 6698 |
169 | T전화 : 기본앱 대신 플레이스토어 앱으로 쓰기 그리고 두개가 뭐가 다른가. [2] | 피델리티 | 06.02 | 7104 |
168 | 리눅스: GUI 바꾸기 [민트리눅스] [2] | 영진 | 05.29 | 6878 |
167 | 리눅스: bash스크립팅 - 화일이름 일괄 바꾸기 [2] | 영진 | 05.22 | 6615 |
166 | 안드로이드 태블릿 기본적인 이해 및 테스트 방법론 (제1강) | 星夜舞人 | 05.20 | 6627 |
165 | 리눅스: 언어벤치마크 [4] | 영진 | 05.05 | 6803 |
164 | 리눅스: bash스크립팅: 간단한 통계내기 | 영진 | 03.31 | 6936 |
163 | 리눅스: vim: 설정하기 [1] | 영진 | 03.12 | 7221 |
162 | 리눅스: 생성일 기준으로 자동 파일 정리 스크립트 (초보) [3] | 건설노무자 | 02.22 | 4699 |