실수로 /*의 일부를 /some/directory에 복사했습니다. 실수를 어떻게 수정해야 합니까?

실수로 /*의 일부를 /some/directory에 복사했습니다. 실수를 어떻게 수정해야 합니까?

원격 Linux 서버에서 어리석은 짓을 했습니다.

  1. 내 작업 디렉토리는/some/directory
  2. 나는 달렸다for dir in $(ls | grep "a_pattern"); do mv $d/* ./my_subdirectory; done
  3. 이제 다음과 같은 항목이 /some/directory/my_subdirectory포함되어 bin boot dev있으며 home절대 있어서는 안 되는 항목이 포함되어 있습니다.

# 2가 얼마나 어리석은 지 자유롭게 지적하십시오. 내 오류를 올바르게 이해하면 $d비어 있는 것입니다(입력을 의미합니다 $dir. 수정이 있더라도 아마도 조작된 명령일 수 있지만 해당 괄호를 닫아야 함). 따라서 기본적으로 yes 명령을 실행합니다 mv /* ./my_subdirectory.

내가 한 일을 깨달았을 때 ctrl-c ctrl-c를 눌러 명령이 완료되기 전에 중단했습니다.

내 질문은 두 부분으로 구성됩니다. 첫째, 이 문제를 해결하려면 어떻게 해야 합니까? 둘째, 내 명령이 실제로 작동합니까?이동하다물건 /, 아니면 그냥 복사 하시겠습니까?

나는 그것을 실행했고 , 그것이 뭔가 움직일 것이라고 기대했지만, 아무것도 빠진 것을 mv보지 못했습니다 . 여기서 명확하지 않은 경우 알려주십시오. 예를 들어 bash, cat, mount 및 mkdir이 포함되어 있지만 이러한 프로그램은 이동된 것이 아니라 복사된 것처럼 여전히 존재합니다. 왜 그런 겁니까? 아래의 모든 항목을 안전하게 삭제할 수 있습니까 ? 아니면 끔찍한 실수가 될까요?./my_subdirectory//some/directory/my_subdirectory/bin/bin/some/directory/my_subdirectory


의견에서 tad의 제안에 따라 다음은 몇 가지 결과입니다 find ./my_subdirectory -type f.

./my_subdirectory/bin/umount
./my_subdirectory/bin/date
./my_subdirectory/bin/sort
./my_subdirectory/bin/red
./my_subdirectory/bin/dumpkeys
./my_subdirectory/bin/sleep
./my_subdirectory/bin/readlink
./my_subdirectory/bin/mv
...
./my_subdirectory/etc/security/pam_env.conf
./my_subdirectory/etc/security/chroot.conf
./my_subdirectory/etc/security/access.conf
./my_subdirectory/etc/security/namespace.init
./my_subdirectory/etc/security/group.conf
./my_subdirectory/etc/security/console.handlers

확인해 보니 파일이 여전히 아래 /etc및 아래에 존재합니다 /bin. 실행하면 diff ./my_subdirectory/etc /etc공통 하위 디렉터리가 표시되는데, 그 중 일부는 에만 있지만 /etc그 중 어느 것도 ./my_subdirectory/etc. 그래서 물건이 이동된 것이 아니라 복사된 것처럼 보입니다. sudo로 명령을 실행 하지 않을 때 mv이것이 예상되는 것 입니까?

답변1

이 명령을 루트로 실행하지 않는다고 가정하면 데이터가 단순히 복사된 것으로 가정합니다. 빠르게 알 수 있는 방법은 diff를 실행하여 디렉터리를 비교하는 것입니다.

관련 정보