디렉토리에서`03.mp3 01.mp3 02.mp3` (`ls -f`) 파일을 실제로 재정렬하는 방법은 무엇입니까?


11

파일을 USB 스틱에 복사하고 자동차 mp3 플레이어에서들을 때 파일 의 물리적 순서 가 중요합니다. 내 음악 앨범 폴더의 대부분이 분류되지 않았습니다 ls -f. 예 :
03.song3.mp3
01.song1.mp3
02.song2.mp3

해당 폴더를 USB 스틱에 복사하면 파일 순서대로 복사됩니다 . 내 자동차 mp3 플레이어는 정렬되지 않은 순서로 파일을 표시합니다. 이후 USB 스틱에서 파일의 순서 를 바꿀 수 있지만 ( `ls -U`에 표시된대로 폴더를 재정렬하는 방법? 참조 ) 하드 디스크의 해당 디렉토리 내에서 파일을 재정렬 할 수 있다면이를 피할 수 있습니다 (ext4 )? 그렇게하는 방법이 있습니까?

(실패하면 find명령 을 작성하는 방법이있을 수 있습니다. 파일을 가져 와서 정렬 한 다음 순서대로 복사하는 명령이 있습니까?) 제안 사항이 있습니까?


또는 파일 mp3 플레이어로 복사 한 후 파일 정렬 할 수 있습니다. superuser.com/questions/368623/…
eswald

답변:


5

ext4에서이 작업을 수행 할 수 없을 것입니다. 디렉토리에서 파일의 선형 테이블을 사용하는 FAT (32)와 달리 최신 파일 시스템은 B + 트리 (NTFS, XFS) 또는 해시 B- 트리 (ext3 / 4) 와 같은 복잡한 구조를 사용 합니다. 여기서 모든 항목은 다음에 따라 정렬됩니다. 특정 알고리즘.

특히 ext3 / 4는 이름의 해시 값에 따라 파일을 정렬하므로 항상 같은 순서로 같은 파일을 얻습니다. 을 통해 dir_index 기능 을 비활성화 tune2fs할 수 있지만 많은 파일이 포함 된 디렉토리가 있으면 성능이 저하 될 수 있습니다.


이것에 대한 매우 기본적인 명령은 cp dir/* otherdir/이며, 여기서 쉘은 인수를 확장 할 때 이름을 정렬하고 cp주어진 순서대로 간단히 복사합니다.

하위 디렉토리를 복사하는 데 더 복잡한 것 :

#!/usr/bin/env bash
srcdir=$1
destdir=$2

find "$srcdir" \( -type d -printf "0dir %P\0" \) \
            -o \( -type f -printf "1file %P\0" \) |
sort -z | while read -r -d '' type path; do
    case $type in
        "0dir") mkdir -vp "$destdir/$path";;
        "1file") cp -v "$srcdir/$path" "$destdir/$path";;
    esac
done

예를 들어 move파일을 new_tmp폴더 라고 말한 다음 다시 이동하지만 순서를 지정할 수 있습니까? (폴더의 GUI 내에서 작동하는 것

1
@ajo : 파일 시스템에 dir_index가 활성화되어 있으면 작동하지 않습니다. 파일을 이동 / 생성하는 순서에 관계없이 파일 이름이 같은 한 정렬 순서가 동일합니다. 예를 들어, mkdir test1 test2; touch test1/{a,b,c,d} test2/{d,c,b,a}; ls -f test1 test2파일이 a c b .. d .반대로 작성된 경우에도 파일이 동일한 순서로 ( 내 시스템에서) 정렬됩니다 .
user1686 2019 년

cp dir/* otherdir/훨씬 쉽게 보이지만, 원래의 순서를 사용합니다. 정렬을 구현할 수 있습니까?
ajo

2
@ajo : 은 시작하기 전에 파일 이름을 정렬해야합니다 cp. echo dir/*그들이 무엇을 확장하는지 보십시오 . 그러나 FAT 메모리 스틱에 복사 할 때만 중요합니다. 그것은 것입니다 하지 ext4에에 복사 할 때 아무것도 변경.
user1686 2019 년

1
단일 디렉토리에 대해 괜찮습니까? find SRC_DIR -iname '*mp3' -print0 | sort -z | xargs -0 -I {} cp {} DEST_DIR
ajo

2

다른 사람도 비슷한 문제 가있는 것 같습니다 .

사용자가 원하는대로 파일을 정렬하고 FAT 파일 시스템을 저수준 스타일로 정렬 할 수있는 도구 입니다.

freecode.com의 동일한 도구

도움이 되길 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.