이틀지난 파일을 find 명령으로 찾아내서 지정 디렉토리로 이동시키고 싶은데 다음과 같이는 사용을 못합니다. find /home/test/logs/ -mtime +1 | xargs mv xxxx /home/test/logs_bk
물론 이런 명령어는 mv에서 에러가 날텐데.... xxx에 어떤 인자를 입력할 방법이 있습니까?
다른 방법이 있으면 알려주세요...
find /home/test/logs/ -mtime +1 | xargs mv xxxx /home/test/logs_bk
--->
find /home/test/logs/ -mtime +1 | awk '{ print "mv",$1,"/home/test/logs_bk" }' | ksh -x
find /home/test/logs/ -mtime +1 -exec mv {} /home/test/logs_bk \;
하면 될 것입니다. (bash 기준)
아니면
mv `find /home/test/logs/ -mtime +1` /home/test/logs_bk
해도 됩니다.
http://hj-lee.github.io/
-t 옵션이 있었네요.
find /home/test/logs/ -mtime +1 | xargs mv -t /home/test/logs_bk
덧글 달리면 수정이 안되네요. 제가 위에 옵션을 제대로 확인 안 하고 쓰는 바람에 다른 분들이 잘못 사용하실까봐 정정합니다.
http://oreilly.com/linux/command-directory/cmd.csp?path=x/xargs
xargs 에서 -t 옵션은 --verbose, 떠벌이 옵션이었고요. 인자 위치 지정은 -i 옵션이었습니다.
echo *.gz | xargs -i mv {} /dev/null
이렇게 {}를 쓰면 인자를 {} 위치로 보내고요,
-i문자열 을 쓰면 {} 대신 '문자열'을 사용할 수 있습니다.
echo *.gz | xargs -iHELLO -t sudo mv HELLO list_HDD-01-sda3.gz
저는 wget으로 다운로드 받은 파일 이름이 마구 깨져서 커맨드 라인으로 선택 안되는 파일 이름을 이렇게 바꾸었습니다.
여기서 -t는 xargs의 옵션이 아니라, mv의 옵션 아닌가요?
그래서 원래 쓰신 답글의 내용도 올바르게 동작할 것 같은데요?
오히려 -i 옵션을 쓰는 것보다, mv -t 를 쓰는 것이
성능(?)면이나, xargs의 취지에 더 맞는 것 같습니다.
전 -i 옵션이 더 외우기 쉽더라구요.
find /home/test/logs/ -mtime +1 | xargs -l -iLOG mv LOG /home/test/logs_bk/
오 이 깨알같은 팁들 감사합니다.
좋은 하루 되세요!
감사합니다! 저도 이거 때문에 고생하고 있었는데 잘 배워갑니다 ^^
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
xargs 를 사용한 방법은 아니지만 이렇게 ...
find /home/test/logs/ -mtime +1 | xargs mv xxxx /home/test/logs_bk
--->
find /home/test/logs/ -mtime +1 | awk '{ print "mv",$1,"/home/test/logs_bk" }' | ksh -x
[code:1]find /home/test/logs/ -mtime +
하면 될 것입니다. (bash 기준)
아니면
해도 됩니다.
http://hj-lee.github.io/
-t 옵션이 있었네요. find
-t 옵션이 있었네요.
find /home/test/logs/ -mtime +1 | xargs mv -t /home/test/logs_bk
덧글 달리면 수정이 안되네요. 제가 위에 옵션을
덧글 달리면 수정이 안되네요.
제가 위에 옵션을 제대로 확인 안 하고 쓰는 바람에 다른 분들이 잘못 사용하실까봐 정정합니다.
http://oreilly.com/linux/command-directory/cmd.csp?path=x/xargs
xargs 에서 -t 옵션은 --verbose, 떠벌이 옵션이었고요.
인자 위치 지정은 -i 옵션이었습니다.
echo *.gz | xargs -i mv {} /dev/null
이렇게 {}를 쓰면 인자를 {} 위치로 보내고요,
-i문자열 을 쓰면 {} 대신 '문자열'을 사용할 수 있습니다.
echo *.gz | xargs -iHELLO -t sudo mv HELLO list_HDD-01-sda3.gz
저는 wget으로 다운로드 받은 파일 이름이 마구 깨져서 커맨드 라인으로 선택 안되는 파일 이름을 이렇게 바꾸었습니다.
여기서 -t는 xargs의 옵션이 아니라, mv의
여기서 -t는 xargs의 옵션이 아니라, mv의 옵션 아닌가요?
그래서 원래 쓰신 답글의 내용도 올바르게 동작할 것 같은데요?
오히려 -i 옵션을 쓰는 것보다, mv -t 를 쓰는 것이
성능(?)면이나, xargs의 취지에 더 맞는 것 같습니다.
-i 옵션도 있습니다.
전 -i 옵션이 더 외우기 쉽더라구요.
오 이 깨알같은 팁들 감사합니다.
오 이 깨알같은 팁들 감사합니다.
좋은 하루 되세요!
감사합니다! 저도 이거 때문에 고생하고 있었는데 잘
감사합니다! 저도 이거 때문에 고생하고 있었는데 잘 배워갑니다 ^^
댓글 달기