mv 명령을 사용하여 모든 파일을 잃은 이유는 무엇입니까?

mv 명령을 사용하여 모든 파일을 잃은 이유는 무엇입니까?

디렉터리의 전체 내용(모든 하위 폴더 포함)을 한 수준 위로 이동하고 싶습니다.

cd /dir/subdir
mv * /dir
cd ..
rm -R subir/

모든 폴더와 하위 폴더가 있지만 /dir비어 있습니다. 내가 뭘 잘못했나요?

파일 시스템은 BTRFS인데 시도했지만 btrfs restore성공하지 못했습니다.

어떤 도움이라도 대단히 감사하겠습니다.

답변1

당신이 무엇을했는지 봅시다. 나는 모든 명령이 표준 도구이며 어떤 방식으로도 적용되지 않는다고 가정합니다. ( type cd, type mv및 을 확인하세요 type rm. 필요한 경우 aliased이를 알아야 합니다. 예를 들어 는 mv is aliased to 'mv -i'우리가 알아야 하지만 cd is a shell builtin또는 rm is /bin/rm작동할 수도 있는 것입니다.)

  1. cd /dir/subdir

    파일 시스템의 절대 경로로 이동합니다. 오류가 보고되지 않았다고 가정하면 이제 에 있습니다 /dir/subdir.

  2. mv * /dir

    이 디렉토리에 표시되는 모든 항목을 절대 디렉토리로 이동합니다 /dir. 이름이 로 시작하는 파일이 없고 -(잊었기 때문에 ) 오류가 보고되지 않는다고 가정 --하면 ./dir/subdir/dir

    파일(및 하위 디렉터리(있는 경우))은 복사되지 않고 이동되므로 파일 내용은 어떤 방식으로든 건드리거나 변경되지 않습니다.~하지 않는 한 /dir/subdir다른 파일 시스템에서 /dir.

  3. cd ..

    쉘에 따라 또는 subdir파일 시스템의 다른 부분이 아닌 심볼릭 링크를 제공하는 경우,그리고오류가 보고되지 않으면 이제 에 있어야 합니다 /dir.

    현재 있는 디렉토리를 확실히 확인하려면 pwd -P.

  4. rm -R subir/

    아마도 명령이 실패할 것입니다. 하지만 어쩌면 당신은 rm -R subdir이 경우 디렉토리를 의미할 수도 있습니다.subdir 그리고 남은 콘텐츠삭제됩니다.

    rmdir subdir디렉터리가 예기치 않게 비어 있지 않은 경우 경고를 받도록 디렉터리를 삭제할 수 있습니다 .

이때 파일이 비어 있는 경우입력한 명령에 오류가 없습니다., 시작하기 전에 모두 비어 있습니다.

관련 정보