다른 폴더를 기준으로 한 폴더의 파일을 정렬합니다.

다른 폴더를 기준으로 한 폴더의 파일을 정렬합니다.

폴더가 2개 있습니다. 폴더 1에는 일부 하위 폴더에 일부 파일이 정렬되어 있습니다. 폴더 2에는 파일 이름은 동일하지만 크기는 다르지만 하위 폴더에 정렬되지 않은 파일이 있습니다. 폴더2 파일을 폴더1처럼 정리하고 싶습니다. 이 작업을 수행하는 빠른 방법이 있나요? 저는 리눅스를 사용하고 있습니다.

답변1

아마도 다음과 같은 조치를 취할 수 있을 것입니다.

cd "$folder1"
echo "mkdir -p " $(find . -type d | tee /tmp/dirs) > /tmp/tmpscript
find . | awk -F"/" 'FNR == NR {DIR[$0]; next} !($0 in DIR) && !(NF == 2) {print "cp \"" $NF "\" \"" $0"\""}' /tmp/dirs - >> /tmp/tmpscript
cd "$folder2"
less /tmp/tmpscript
# rm /tmp/dirs /tmp/tmpscript

cp먼저 폴더2 아래에 하위 디렉터리 구조를 만든 다음 그 안에 있는 각 파일을 관련 하위 디렉터리에 배치하는 임시 스크립트를 만듭니다 . 필요한 경우 로 변경하십시오 cp. 실제로 실행하기 전에 첫 번째 항목(예를 들어)을 mv다시 확인하세요 . 마지막 단계로 임시 파일을 삭제해야 합니다. 복사 작업을 최적화하기 위해 노력하지 않습니다. 각 파일은 개별적으로 처리됩니다. 하위 디렉터리에 바인딩된 모든 파일을 하나의 복사 명령으로 수집하는 등 개선이 이루어질 수 있습니다.tmpscriptless

관련 정보