대상 디렉터리에 아직 존재하지 않는 Linux 서버의 폴더를 이동하는 방법을 찾고 있습니다.
예:
대상 디렉토리
folder1
folder2
folder3
folder4
소스 코드 디렉토리
folder1
folder2
folder5
folder6
folder7
folder1
원본 디렉터리 에서 folder2
대상 디렉터리의 폴더를 덮어쓰고 싶지 않습니다 . 원본 디렉터리의 내용은 대상 디렉터리의 내용 folder1
과 다를 수 있지만 folder2
이러한 변경 사항이 복사되는 것을 원하지 않습니다.
이는 CentOS 7 서버에 있으며 작업에 필요한 모든 도구를 허용합니다.
이동하지 않을 폴더 목록은 동적이므로 정적으로 설정하고 싶지 않습니다.
답변1
소스의 각 디렉토리를 통해 루프를 설정하여 이를 수행할 수 있으며, 대상에 해당 이름의 디렉토리가 없으면 이동됩니다: bourne snippit:
for dir in `cd "$sourcedir" ; ls -1F | grep '/'`
do
if [ ! -d "${targetdir}/${dir}" ]
then
mv "$dir" "${targetdir}/"
fi
done
소스의 디렉터리와 이름이 같은 경우 대상의 파일이 손상되거나 덮어쓰게 됩니다. 강력해지기를 원한다면 몇 가지 추가 검사를 추가해야 합니다.