ROOT 디렉터리에서 파일을 이동하면 데이터가 손실됩니다.

ROOT 디렉터리에서 파일을 이동하면 데이터가 손실됩니다.

이사하기 전에 카탈로그를 확인해 보니 모든 것이 들어 있었습니다. 그런 다음 다음 명령을 사용하여 C 드라이브(WSL 사용)의 디렉터리로 이동했습니다. sudo mv c_dir/ mnt/c/Users/L570/Documents/to_be_compiled/

cd에 들어가 보니 to_be_compiled분명히 거기에 있었다. 그러나 그것은 비어 있습니다.

다른 질문에서 이 명령을 찾았 chown erebus /mnt/c/Users/L570/Documents/to_be_compiled/c_dir/ 지만 그것도 아무 것도 바뀌지 않았습니다.

시도해 보았지만 ls -a실제로 파일이 없습니다.

Q: 모든 파일을 잃어버렸나요? 아니면 권한 문제인가요?

답변1

현재 정보를 바탕으로 우리 모두는 이 사건에서 정확히 무슨 일이 일어났는지 혼란스러워하고 있다는 의견을 말하는 것이 안전하다고 생각합니다. 도움이 된다면 다음 시나리오를 사용하여 WSL의 Ubuntu에서 문제를 재현할 수 없습니다.

cd /
sudo mkdir c_dir
cd c_dir
sudo touch abc 1 2 3
cd /
sudo mv c_dir/ mnt/c/Users/ntd/Documents/to_be_compiled

디렉터리 이름 이 올바른 위치의 디렉터리 /c_dir로 변경(이동)되었으며 모든 파일이 존재합니다.to_be_compiled

즉, 가장 좋은 방법은 /사용하는 상대 형식보다는 정규화된 디렉터리 이름( 로 시작)을 사용하는 것입니다. 명령을 실행할 때 이러한 파일이 작업 디렉토리를 기반으로 다른 곳에 있는지 궁금합니다 mv.

실제 소유권과 권한에 주의하세요.~ 할 것이다에서 자동 마운트 설정을 변경했는지 여부에 따라 다릅니다 /etc/wsl.conf.

기본 WSL 설치를 사용하면 이러한 파일은 귀하가 소유하게 됩니다.사용자Windows 드라이브로 이동하면 777 권한이 부여됩니다.

광산은 약간 변경되었으며 다음과 같습니다 /etc/wsl.conf.

[automount]
options = "metadata,umask=22,fmask=11"

이 작업이 완료되면 WSL은 실제 Linux 소유권 및 권한을 모방하려고 시도하므로 파일은 권한 644를 사용 하여 root(이동되었으므로 ) 소유하게 됩니다.sudo

관련 정보