내 문제는 어떤 이유로 든 일부 음악 트랙이 중복되어 있다는 것입니다. 그러나 그것들의 이름은 동일하지 않습니다. 예를 들어 :
음악 / 거절 73 / One Word Extinguisher / 07. Detchibe.mp3
&
음악 / 거절 73 / 한 단어 소화기 / 07-Detchibe.mp3
중복 된 노래이지만 07 * 입니다. * 07 - 파일 이름을 기반으로 검색 중복 파일을 줍는 사람을 속여된다.
내 문제는 어떤 이유로 든 일부 음악 트랙이 중복되어 있다는 것입니다. 그러나 그것들의 이름은 동일하지 않습니다. 예를 들어 :
음악 / 거절 73 / One Word Extinguisher / 07. Detchibe.mp3
&
음악 / 거절 73 / 한 단어 소화기 / 07-Detchibe.mp3
중복 된 노래이지만 07 * 입니다. * 07 - 파일 이름을 기반으로 검색 중복 파일을 줍는 사람을 속여된다.
답변:
fdupes
질문에 대한 답변처럼 »중복 파일을 찾고 삭제하는 방법«을 제안 하는 것처럼 사용할 수 있습니다 . 예를 들어 보겠습니다.
mkdir -p "Music/Prefuse 73/One Word Extinguisher/"
dd if=/dev/urandom of=Music/Prefuse\ 73/One\ Word\ Extinguisher/07.Detchibe.mp3 bs=1023 count=2048
2048+0 records in
2048+0 records out
2095104 bytes (2.1 MB) copied, 0.379806 s, 5.5 MB/s
cp Music/Prefuse\ 73/One\ Word\ Extinguisher/07.Detchibe.mp3 Music/Prefuse\ 73/One\ Word\ Extinguisher/"07 - Detchibe.mp3"
fdupes -rd .
[1] ./Music/Prefuse 73/One Word Extinguisher/07.Detchibe.mp3
[2] ./Music/Prefuse 73/One Word Extinguisher/07 - Detchibe.mp3
Set 1 of 1, preserve files [1 - 2, all]:
먼저 예제와 같이 디렉토리를 만들었습니다. 나는 임의의 데이터로 파일을 만들고 그 내용을 다른 파일로 복사했습니다. 내가 실행할 fdupes -rd
때 소프트웨어는 두 개의 정확한 파일을 찾아서 어느 파일을 삭제할 것인지 묻습니다.
파일이 많으면 옵션을 사용할 수 있습니다 -1
. fdupes
모든 사본을 한 줄에 인쇄합니다. xargs
다른 쉘 기능으로 처리 할 수 있습니다 .
fdupes
하위 폴더로 다이빙하지 않는 것입니다. 예를 들어 ~/Desktop/Dupes2/
Dupes가 포함 된 Blood Sugar Sex Magik이라는 폴더가 있지만 간단한 fdupes -r
명령으로 어떤 목록도 반환하지 않습니다.
다소 간단한 명령 체인을 발견했습니다. @Oli에게 감사드립니다.
fdupes -rf --quiet ~/Desktop/Dupes2/ | while read i; do mv "$i" ~/Desktop/Dupes/ ; done
이것은 첫 번째 ( )를 생략하고 fdupes
재귀 적으로 ( -r
) 듀프를 찾는 데 사용 되었습니다 -f
. Bash는 read
amd를 통해이 줄을 한 줄씩 읽어 각 줄 mv
을 다른 디렉토리로 옮깁니다. while
루프 에서 인용 부호를 사용 하여 처리 fdupes
할 수없는 공백 및 기타 복잡한 문장 부호를 처리합니다 ( -1
/ 포함 --sameline
).
Banshee에서 수동으로 트랙 수신 횟수 설정에 대한 답변 ? , 밴시는 모든 트랙 정보를 저장하는 데 사용하는 데이터베이스를 얻는 방법을 설명합니다.
데이터베이스에 연결되면 쿼리 실행 테이블에서 붙여 넣기
select tweaked_track, count(*) from
(select replace(replace(replace(title, ' ', ''), '-', ''), '.', '') as tweaked_track
from coretracks)
group by tweaked_track
order by 2, 1 desc;
SQL 문자열 상자에 넣은 다음 '쿼리 실행'을 클릭하십시오. 공백, 대시 및 마침표를 무시하고 제목이 같은 모든 트랙이 표시됩니다. 무시하려는 다른 문자가 있으면 같은 패턴으로 쿼리에 추가하십시오. (IE 추가 기능 replace(
이전에 최초의 "교체"를 지난 후 기존 ")"그 줄에 추가 , '[character you want removed]', '')
.
(SQL에 대해 얼마나 알고 있는지 잘 모르겠습니다. 자세한 내용이 필요하면 의견을 게시하십시오.)
타이틀 목록이 표시됩니다. 실제로 직접 삭제해야합니다.
이 작업을 수행하는 더 좋은 방법이있을 수 있지만 존재하는 경우 잘 모르겠습니다.
삭제할 파일 목록이 많으면 (나의 방법이나 fdupes
다른 사람이 언급 한 것처럼) 삭제하려는 파일 목록을 텍스트 디렉토리에 넣습니다. 다음 중 하나에 해당하는지 확인하십시오.
옵션 # 1 : 파일 이름에 전체 경로가 포함되어 있습니다. 예를 들어 파일에 다음이 포함될 수 있습니다.
/home/doneill/music/weird_al/duped_file.mp3
/home/doneill/music/weird_al/another_dupe.mp3
/home/doneill/music/bach/baroque_dupe.mp3
옵션 # 2 : 파일 이름에 상대 경로가 포함되고 파일 이름 목록이있는 파일이 상위 폴더에 저장됩니다. 예를 들어 파일 목록이에 저장된 경우 다음 /home/doneill/music/
이 포함됩니다.
weird_al/duped_file.mp3
weird_al/another_dupe.mp3
bach/baroque_dupe.mp3
두 경우 모두 터미널 창을 열고 목록이있는 파일이 들어있는 폴더로 변경하십시오 cd /home/doneill/music/
.
입력 :
for a in `cat filelist.txt`; do echo $a; done
(filelist.txt를 목록이있는 파일 이름으로 바꿉니다). 삭제하려는 모든 파일 목록이 뱉어집니다. 잠시 시간을내어 목록을 다시 확인하십시오. 올바른 경우 다음을 입력하십시오.
for a in `cat filelist.txt`; do rm $a; done
이것은 기본적으로 컴퓨터에 알려줍니다 : 파일의 각 줄마다 filelist.txt
나열된 이름의 파일을 제거하십시오.
sqlitebrowser
을 설치할 때 메뉴에 입력되지 않은 경우 명령입니다 ). 2) 파일-> 열기. 3) /home/[user]/.config/banshee-1/
'찾아보기'주소 표시 줄에 입력하십시오 ([사용자]를 사용자 이름으로 바꾸십시오). 4)를 더블 클릭하십시오 banshee.db
.