많은 파일이 포함된 디렉토리 구조가 있습니다. 유사한 파일을 반복적으로 찾아 이름을 기준으로 정렬하고 싶습니다.
쉬운 부분: . 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