cp가 파일 메타데이터를 잃습니다.

cp가 파일 메타데이터를 잃습니다.

Linux에서 실행되는 Asustor NAS가 있습니다. 어떤 배포판을 사용하는지 모르겠습니다.

SSH를 사용하여 로그인하고 모든 쉘 명령을 사용할 수 있습니다. 내부 볼륨은 ext2를 사용하고 외부 USB HD는 NTFS를 사용합니다.

명령을 사용하여 파일을 복사 하려고 하면 cp파일의 날짜 메타데이터가 현재 날짜 시간으로 변경됩니다.

예를 들어 Windows를 사용하여 SMB에서 파일을 복사했는데 해당 파일이 2007년에 수정된 경우 새 파일은 2017년에 지금 생성되었지만 2007년에 수정된 것으로 표시됩니다. 그러나 Linux cp명령을 사용하면 수정 날짜도 2017로 변경되었습니다.

이 수정 날짜는 Windows 탐색기에서 수정 날짜별로 파일을 정렬할 수 있기 때문에 저에게 매우 적합합니다. 덮어쓰면 정렬할 수 없으며 지금은 모두 생성된 것 같습니다. 또한 수정 날짜를 사용하여 희귀한 오래된 파일을 언제 얻었는지 알 수 있습니다.

cp원본 파일 메타데이터를 보존하기 위해 명령에 사용할 수 있는 매개변수가 있습니까 ?

cp --preserve=timestamps업데이트: 성공하지 못하고 시도했지만 다음과 같이 인쇄됩니다.

cp: unrecognized option '--preserve=timestamps'
BusyBox v1.19.3 (2017-03-22 17:23:49 CST) multi-call binary.

Usage: cp [OPTIONS] SOURCE DEST

Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY

        -a      Same as -dpR
        -R,-r   Recurse
        -d,-P   Preserve symlinks (default if -R)
        -L      Follow all symlinks
        -H      Follow symlinks on command line
        -p      Preserve file attributes if possible
        -f      Overwrite
        -i      Prompt before overwrite
        -l,-s   Create (sym)links

-p표시된 대로 시도 cp: can't preserve permissions of '...': Operation not permitted하면 테스트할 수 있는 한 타임스탬프가 보존됩니다.

답변1

man cp복사 명령의 매뉴얼 페이지를 읽으면 이러한 플래그를 찾을 수 있습니다 -p and --preserve.

-p그것은 같은--preserve=mode,ownership,timestamps

그리고

--preserve[=ATTR_LIST]지정된 속성을 유지하고(기본값: mode,ownership,timestamps), 가능한 경우 속성을 추가합니다: context, links, xattr,all

.cp -pcp

답변2

몇 가지 짚어볼 만한 점이 있다고 생각합니다.

어떤 배포판을 사용하고 있는지 확실하지 않다고 하셨지만 업데이트에는 배포판을 BusyBox v1.19.3으로 식별하는 출력이 포함되었습니다. 보고 있다Asustor NAS 개발자 가이드문제가 있는 운영 체제가 무엇인지 확인하십시오.바쁜 상자.

이것@roaima가 게시한 답변명령의 매뉴얼 페이지를 참조하십시오 cp. 이것은 일반적으로 의미가 있지만 이 경우에는 의미가 없을 수도 있습니다.

BusyBox는 아마도 대부분의 사람들에게 익숙한 대중적인 Linux 버전과는 약간 다른 환경에서 임베디드 장치용으로 설계된 미니멀리스트 Linux 운영 체제입니다. 특히, 매뉴얼 페이지는 NAS에서 사용하지 못할 수 있으며 명령의 기능, 동작 및 구문이 약간 다를 수 있습니다. BusyBox에 대한 문서는 다음과 같습니다.

cpBusyBox의 명령 항목은 다음과 같습니다.

cp

cp [OPTIONS] SOURCE DEST

Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY

Options:

        -a      Same as -dpR
        -d,-P   Preserve links
        -H,-L   Dereference all symlinks (default)
        -p      Preserve file attributes if possible
        -f      Force overwrite
        -i      Prompt before overwrite
        -R,-r   Recurse
        -l,-s   Create (sym)links

-p더 많은 기능을 갖춘 배포판에서 사용할 수 있는 더 유연한 구문이 부족하지만 옵션 플래그가 여전히 존재하고 평소와 동일한 의미를 가지고 있음 을 알 수 있습니다 .

--preserve[=ATTR_LIST]

cp이는 이 플래그를 사용하여 명령을 실행하려고 할 때 나타나는 사용법 메시지와 일치합니다 --preserve.

플래그가 작동하지 않는다고 말씀하셨으므로 -p시도해 볼 수 있는 또 다른 옵션은 플래그 없이 파일을 복사한 -p다음 다음 touch과 같은 명령을 사용하여 수정 시간을 업데이트하는 것입니다.

root@busybox:~# cp original_file new_file
root@busybox:~# touch -r original_file new_file

그래도 문제가 해결되지 않으면 받은 오류 메시지를 포함하도록 질문을 업데이트해야 할 수도 있습니다. 복사하려는 파일의 속성, 파일을 복사하려는 위치, 실행 중인 사용자, 사용자 이름으로 실행 중인 정확한 명령 및 사용자 이름 당시 로그인한 사용자 아래에서 해당 명령을 실행하고 있습니다.

즉, cp -p마운트된 볼륨 간에 복사 중이고 파일 소유자가 한 볼륨에는 있지만 다른 볼륨(또는 해당 콘텐츠와 유사한 것)에는 존재하지 않기 때문에 귀하의 명령이 권한 관련 오류를 생성할 수 있다고 생각합니다.

관련 정보