파일 없이 리눅스 디렉터리와 하위 디렉터리 구조를 만드는 방법

파일 없이 리눅스 디렉터리와 하위 디렉터리 구조를 만드는 방법

아래와 같이 기존 Linux 디렉터리와 폴더 하위 디렉터리의 미러를 만들어야 합니다.

"/opt/current" 디렉터리에는 또 다른 수준의 20개 하위 디렉터리, 또 다른 수준의 50개 하위 디렉터리 등이 있습니다. 상위 디렉터리에서 하위 디렉터리까지 총 1000개의 하위 디렉터리 수준이 있습니다. /opt/current는 Oracle ZFS Appliance에 설치됩니다.

일대일 디렉터리처럼 권한을 수동으로 만들고 적용하는 대신 새 위치 /opt/New에 정확한 미러 디렉터리/하위 디렉터리 구조를 만드는 방법입니다. /opt/New는 다른 ZFS 장치에 마운트됩니다.

/opt/current 경로와 동일한 소유자/그룹/기타 권한을 사용하여 /opt/New 경로에서 상위에서 하위로 전체 디렉토리 구조를 생성하는 방법/스크립트가 있습니까?

고마워요, CG

답변1

rsync -av --include='*/' --exclude='*' /opt/current/ /opt/New

rsync이는 파일 복사를 피하면서 in의 디렉토리 구조를 정확하게 복사하는 역할을 합니다 ./opt/local/opt/New

옵션 -a( --archive)은 모든 권한 등이 유지되도록 보장하고(이 옵션은 재귀 복사를 의미하기도 함), -v( --verbose)는 명령 진행 상황을 표시합니다.

--include='*/'전송에는 모든 디렉토리가 명시적으로 포함되지만 다른 모든 디렉토리는 제외 됩니다 --exclude='*'. 명령줄에서 이러한 옵션의 순서는 중요합니다.

/마지막 부분 /opt/current/도 중요합니다. 왜냐하면 그것이 없으면 결과가 /opt/New/current직접 작성되기보다는 생성되기 때문입니다 /opt/New.

답변2

POSIXly에서는 디렉터리 이름에 개행 문자가 포함되어 있지 않으며 $srcdir$dstdir절대 경로라고 가정합니다.

(cd -P "$srcdir" && find . -type d | pax -rwdpe "$dstdir/")

일부 구현에서는 NUL로 구분된 파일 이름을 허용하는 옵션을 pax사용하여 복사할 NUL로 구분된 파일 목록 가져오기를 지원합니다 .-0

(cd -P "$srcdir" && find . -type d -print0 | pax -0rwdpe "$dstdir/")

( -print0POSIX가 아닌 확장이기도 함).

답변3

아니면 선택할 수 있습니다rsync

find /opt/current -type d -print0 | cpio -0pma backup/dir/

답변4

다음과 같은 스크립트를 만들 수 있습니다. 파일에 넣으세요.

-- bash 스크립트/ksh 스크립트 구문은 쉘에 따라 변경되어야 합니다----

find . -name "*"|while read line
do
        if [[ -d ${line} ]]
        then 
                echo ${line}
        fi
do

서버에서 파일을 만들고 있습니다.

cat file |while read line
do
mkdir ${line}
done

관련 정보