2013-07-26 2 views
2

최근 실수로 2TB 하드 드라이브를 포맷했습니다. Data Rescue 3으로 파일을 복구 할 수 있었지만 유일한 문제는 프로그램에서 파일, 루트 트리 및 이름을 제공하지 않았기 때문입니다. 일괄 메타 데이터 이름이있는 파일의 이름을 바꿉니다

예를 들어 나는
|-Music 
||-Enya 
|||-Sonadora.mp3 
|||-Now we are free.mp3 
|-Documents 
||-CV.doc 
||-LetterToSomeone.doc 
...and so on 

했다 그리고 지금은 이렇게 방대한 양의 데이터로 수동 개방, 무엇이다를보고 이름을 나에게 세기를 취할 것
|-MP3 
||-M0001.mp3 
||-M0002.mp3 
|-DOCUMENTS 
||-D0001.doc 
||-D0002.doc 

을 얻었다.

모든 하위 폴더를 검색하여 이전 이름을 사용할 수있는 일괄 처리가 있습니까? 아마 메타 데이터로?

아니면 같은 이름과 파일의 경로를 유지하는 더 나은 도구를 알고 (비용을 지불해야하는 경우 중요하지 않습니다는 THER는 항상을위한 솔루션입니다 : P)

당신에게

+0

크기 및 데이터 (복구 된 경우)의 이름 만 백업에서 사용하고 백업에없는 파일 만 수동으로 이름을 바꿀 수 있습니까? – choroba

답변

3

감사 내 당신에게 최소한 음악 기여 ...

아이디어는 발견 된 모든 MP3 파일을 살펴보고 ID3 태그를 기반으로 배포합니다. 기본적으로

for i in `find /MP3 -type f -iname "*.mp3"`; 
do 
    ARTIST=`id3v2 -l $i | grep TPE1 | cut -d":" -f2 | sed -e 's/^[[:space:]]*//'`; # This gets you the Artist 
    ALBUM=`id3v2 -l $i | grep TALB | cut -d":" -f2 | sed -e 's/^[[:space:]]*//'`; # This gets you the Album title 
    TRACK_NUM=`id3v2 -l $i | grep TRCK | cut -d":" -f2 | sed -e 's/^[[:space:]]*//'`; # This gets the track ID/position, like "2/13" 
    TR_TITLE=`id3v2 -l $i | grep TIT2 | cut -d":" -f2 | sed -e 's/^[[:space:]]*//'`; # Track title 
    mkdir -p /MUSIC/$ARTIST/$ALBUM/; 
    cp $i /MUSIC/$ARTIST/$ALBUM/$TRACK_NUM.$TR_TITLE.mp3 
done 

: 내가 좋아하는 뭔가를 할 거라고

는 은 * 그것은 은 * 각 파일의 ID3 태그를 분석/MP3에있는 모든 ".MP3"파일을 찾습니다, 4 개 변수를 채우기 위해 그들을 구문 분석 "id3v2"도구를 사용하십시오 (먼저 설치해야합니다). 태그는 값만 가져 오도록 정리되고 sed는 오염 될 수있는 선행 공백을 잘라내는 데 사용됩니다. * 그런 다음 아티스트 이름 및 앨범 이름이 포함 된/MUSIC /에 트리를 만들고 ( *) 입력 파일을 새 트리에 복사하고 태그 덕분에 이름을 바꿉니다.

관련 문제