폴더가 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
다시 확인하세요 . 마지막 단계로 임시 파일을 삭제해야 합니다. 복사 작업을 최적화하기 위해 노력하지 않습니다. 각 파일은 개별적으로 처리됩니다. 하위 디렉터리에 바인딩된 모든 파일을 하나의 복사 명령으로 수집하는 등 개선이 이루어질 수 있습니다.tmpscript
less