[Solved]쉘 스크립트 $1 $2 질문입니다.
글쓴이: kombo67 / 작성시간: 금, 2015/08/21 - 1:45오후
find $1 -name "$2" -type f -mtime +30
./logzipdel.sh / *.log // / 경로에서 *.log 인 30일 지난 파일을 찾아라.. 라고 생각하고 넣었거든요
문제는 / 에서 하위까지 찾는단 거고 그것보다 더한 문제는 *.log 로 넘어 오는게 아니라 저 명령어를 치자마자
find에서 찾아낸 smit.log 하나!! 만 나온다는 겁니다
구조를 잘 이해하지 못하는거 같아요 저게 find / -name *.log 를 찾자마자 보이는 smit.log 를 불러왔고
그게 박힌 돌이 되어( True ) 가 되어 딴 것들은 찾지도 않은거 같거든요
진짜 초보라 검색을 해도 못찾겠어서.. ( 아님 검색방법이 틀렸다거나... ) 도움을 요청합니다
1. 제가 바라는 건 30일 지난 "*.log" ( 등의 정규식 ) 을 해당 경로 $1 에서 찾는 것.
ex) oskadasd.log 20150253.log log 1234.log 가 있다면 log를 제외한 나머지를 파일이나 또는 변수에 넣어놓는 것.
최종적으로는 그걸 압축할 예정이기에
Forums:
음 ..
* 이 wildcard 라서.. 현재 디렉토리의 .sh 파일들이 차례로 해당 스크립트의 argument 로 들어갔을 겁니다.
만약 현재 디렉토리에 .sh 파일이 없었다면, 원하는 대로 실행되었겠지만요..
두번째 *.sh 를 따옴표로 감싸거나 앞에 \ 를 넣어주면 원하시는 대로 동작할 겁니다.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
죄송합니다 이해가 잘 가지않아.. 글을 남기게 되네요
죄송합니다 이해가 잘 가지않아.. 글을 남기게 되네요 .sh 파일들은 .log 파일 ( 제가 찾고자하는 ) 을 말씀하시는거 같고
테스트 시
가능하다면 좀더 욕심을 부려서 이해를 해보고 싶어서요..
저기 echo 문을 해석 부탁드려도 될까요 ... [] 문은 둘중에 하나 란 . [ab] 일 떄
a 나 b 가 오면.. 이라고 알고 있었는데 그 지식으론 이해가..ㅜ 안되네요 // 다 개소리였습니다 죄송
여럿 테스트를 거치니 ./logzipdel.sh /etc/ "*.log" 를 했을 때
find $FNAME -name "$2" -type f // 저기서 FNAME은 그냥 디렉입니다
했을 때 정상 출력되네요 .log 로 끝나는 것들 다 보입니다 이 정도 까지 올 수 있게 도와주셔서 감사드리며
이 부분은 혼자 테스트 하면서 검색해보겠습니다 감사합니다
echo "\$* = [$*]" echo "\$1 =
위 예제에서
[]
문자는 특별한 의미를 가진 것이 아니라, 그냥 출력의 시작과 끝을 표현해주기 위해서 들어간 표시일 뿐입니다.이렇게 넣으셨더라도 (표시만 다를 뿐이지) 똑같이 작동했을 것입니다.
일단 질문 자체가 이해가 어렵군요. 해당 스크립트의
일단 질문 자체가 이해가 어렵군요. 해당 스크립트의 전체 코드를 보여 주시는 것이 좋을 듯..
그리고, find에서 / 에 있는 파일만 찾고 싶다면
이렇게 해 주시면 됩니다.
댓글 달기