파일 이름 유사성을 기준으로 파일 정렬

파일 이름 유사성을 기준으로 파일 정렬

많은 파일이 포함된 디렉토리 구조가 있습니다. 유사한 파일을 반복적으로 찾아 이름을 기준으로 정렬하고 싶습니다.

쉬운 부분: . f*.ext이라는 이름의 모든 파일을 찾아 dir1.

t*.ext하지만 이제는 트리 를 다시 순회하여 dir1. 예를 들어 dir1/f12345.jpg해당 항목 source-tree/t12345.jpg(존재하는 경우)을 찾아 로 이동합니다 dir2.

결국, 모든 사람은 각자 dir2/t*.ext하나씩 가져야 합니다 dir1/f*.ext. source-tree/t*.ext하나도 없는 사람은 모두 dir1/f*.ext그 자리에 있어야 합니다.

답변1

이 시도:

# Create dir2:
mkdir dir2
# After moving f* to dir1, loop through these files (dir1/f*):
for f in dir1/f*; do
    # get the basename, cut off the "f" and put a "t" instead:
    t=source-tree/t$(basename "$f" | cut -c 2-)
    # If that file exists, move it to dir2
    [ -f "$t" ] && mv "$t" dir2
done

관련 정보