특정 확장자를 가지고 있는 파일 복사하기.
글쓴이: nahs777 / 작성시간: 토, 2009/07/04 - 2:07오후
안녕하세요.
특정확장자를 가지고 있는 파일을 복사하고자 뭔가 스트립트를 짜봤습니다 근데 전혀 안되네요.ㅠ
#!/bin/bash find /media/data/torrent/download/* | grep mp3 >> ~/tmpmp3 cat ~/tmpmp3 | while read LINE do A=`echo $LINE | sed 's/\ /\\\ /g'` B=`echo $A | sed 's/media\/data\/torrent\/download/media\/disk\/music/'` cp $A $B -fu done
만든코드는 이렇게 됩니다. 즉 /media/data/torrent/download와 그 하위디렉토리에 있는 mp3화일을 /media/disk/music/ 에 복사하려고 하는데요. 어떻게 해도 동작하지 않는군요. 하위 폴더도 복사하게 되어 있는데, 없는 폴더에 복사하려고해서 그런듯 합니다.
이런경우 어떤 방법이 있을까요?
Forums:
확실하지 않은데.
find /media/data/torrent/download/* | grep mp3 >> ~/tmpmp3
이부분이 좀 이상한데야
grep 안 쓰고
find /media/data/torrent/download/ -name *.mp3 >> ~/tmpmp3
해도 될거 같은데
위에 것처럼 하면 아마 mp3확장자 안가자고 파일명에 mp3들어간 것도 포함될수도 있습니다
즐린
하위디렉토리의 트리구조 또한 유지해야합니까?
이방식도 그렇고
이방식도 그렇고 제방식도 마찬가지고(물론 제거는 더 허접하지만..) 문제는 공백이 이름이나 디렉토리 이름에 들어있는 경우에 처리가 안된다는 단점이 있습니다.ㅠ 어떻게 해결할수 없을까요?
* 로 공백이 처리가
* 로 공백이 처리가 안된다는 말씀인가요...?
스크립트중의 경로의 공백은 \를 붙여주거나 경로를 ""으로 둘러싸줘야 합니다.
#!/bin/bash find
이렇게 양쪽을 ""로 묶었는데도 에러가납니다
cp: `"/media/data/torrent/download/Mika Nakashima/Albums/Mika Nakashima - MUSIC/中島美嘉 - MUSIC/04 - 中島美嘉 - 蜘蛛の糸.mp3"'를 설명할 수 없음: No such file or directory
이렇게 나오네요..ㅠㅠ
find
--
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://www.cinsk.org/cfaqs/
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
글 올리신 분의
글 올리신 분의 의도는 (코드를 봐서는;;) 파일들 옮길 때
디렉토리 구조도 그대로 유지되길 원하시는 듯 한데요.
위의 find + xargs 샘플들로도 그것이 가능한 건가요 ? @_@;
그렇다면, 통째로
그렇다면, 통째로 복사하고 난 뒤 mp3이 아닌 파일을 삭제하는게 더 간편할 듯 하네요.
find
이거는요?
댓글 달기