콘텐츠가 있는 하위 폴더를 복사하지 않고 다른 소스 폴더로 이동하려면 어떻게 해야 합니까?

콘텐츠가 있는 하위 폴더를 복사하지 않고 다른 소스 폴더로 이동하려면 어떻게 해야 합니까?

백만 번 이상 요청을 받았음을 알고 있지만 구체적으로 무엇을 하려는지에 대한 답을 찾을 수 없습니다.

디렉토리 구조는 다음과 같습니다.

Main Folder1
|
|-Subfolder 1
|-Subfolder 2 HasAReallyLongName
|---files
|-Subfolder 3-1000

Main Folder2
|
|-Subfolder 2 HasAReallyLongName
|---files
  • 파일이 포함된 Subfolder2를 다른 디렉터리로 이동하려고 합니다.
  • 공간이 부족해서 아무것도 복사하고 제거하고 싶지 않습니다.
  • 나는 하위 디렉토리가 아닌 폴더 mv /Main/Sub2/* /Main2/에 모든 것을 넣기 때문에 원하지 않습니다 ./Main2
  • mkdir /Main2/...이름이 매우 길고(주로 타임스탬프가 있음) 수동으로 입력하고 싶지 않기 때문에(아마 엉망으로 만들 수도 있음) 그렇게 하고 싶지 않습니다.
  • 내가 아는 한 rsync파일도 복사하므로 제대로 작동할지는 잘 모르겠습니다.

어떤 제안이나 다른 도구라도 주시면 감사하겠습니다!

답변1

이것은 완전히 간단합니다.

mv /Main1/Sub2 /Main2

/Main2/Sub2이렇게 하면 원본의 모든 내용이 포함된 디렉터리가 생성되고 디렉터리가 삭제됩니다 /Main1/Sub2. 전체 이름을 입력하고 싶지 않으면 glob을 사용할 수 있습니다. 이름 입력을 중단하고 *디렉터리 이름을 디렉터리의 다른 모든 이름과 구별할 수 있을 만큼 충분한 문자를 입력한 후 다음으로 끝냅니다(조심하세요!).

mv /Main/Sub* /Main2

예상대로 작동하지 않는 원인이 될 수 있는 문제는 다음과 같습니다.

  • /Main2내부에 과(와) 같은 이름의 디렉터리가 이미 있습니다 /Main1/Sub2. 이로 인해 기존 디렉터리 덮어쓰기를 거부하므로 directory not empty오류 가 발생합니다 . mv이 경우 /Main2먼저 기존 디렉터리의 이름을 바꾸거나 제거하십시오.

    mv /Main2/Sub2 /Main2/SomethingElse
    
  • 잘못된 경로를 사용하고 있습니다. 모든 항목은 대소문자를 구분하며 상대 경로와 확장에 유의하세요 ~. 현재 작업 디렉토리에 따라 모두 다릅니다.

    /Main1/Sub2
    Main1/Sub2
    ~/Main1/Sub2
    
  • 원본 및/또는 대상 디렉터리에 쓸 수 있는 권한이 없습니다. 이는 오류 메시지에서 매우 분명하게 드러납니다: mv: cannot move 'thing' to '/place': Permission denied. 어떤 경우에는 내가 가장 좋아하는 명령을 실행하여 문제를 극복할 수 있습니다.

    sudo !!
    

답변2

이해함: sudo mv /Main1/Sub2 /Main2나를 위해 그것을 사용했습니다. 가장 큰 차이점은 내가 생각하기에 루트라는 것입니다.

관련 정보