모든 내용을 유지하는 상위 폴더 제거 [중복]

모든 내용을 유지하는 상위 폴더 제거 [중복]

상위 디렉토리를 삭제하고 해당 내용을 모두 유지하고 싶습니다. 내 현재 디렉토리 구조

$ /usermanagement/usermanagement/file1

상위 디렉토리를 삭제한 후 아래와 같은 구조를 보고 싶습니다.

$ /usermanagement/file1

답변1

(삭제할 디렉터리가 현재 작업 디렉터리라고 가정)

그리고 zsh:

cd -P . &&
  mv -- *(D) .. &&
  cd -P .. &&
  rmdir ~-

그리고 bash:

cd -P . &&
  (shopt -s dotglob && mv -- * ..) &&
  cd -P .. &&
  rmdir "$OLDPWD"

cd -P .현재 작업 디렉토리가 $PWD심볼릭 링크 없이 저장되어 있는지 확인하십시오. 숨겨진 항목(따라서 (D)와일드카드 태그 및 dotglob옵션) 을 포함하여 모든 파일과 디렉터리를 상위 항목으로 이동하려고 합니다 .

유효한 경우 현재 디렉터리를 한 수준 위로 변경하고 이전 디렉터리를 삭제합니다.

( 파일을 덮어쓰는 이동을 취소할 수 있는 -i옵션을 추가할 수도 있습니다 )mv

답변2

어쩌면 귀하의 질문을 올바르게 이해하지 못했을 수도 있습니다. 하지만 귀하의 질문에서 얻은 답변은 다음과 같습니다.

nested귀하가 이름이 이고 상위 디렉토리 이름이 인 현재 디렉토리에 있다고 가정합니다 test.

$ cp -Rp . ../;cd ../;rm -rf nested

설명하다


  1. cp -Rp . ../- 디렉터리, 중첩된 디렉터리 및 숨겨진 파일을 포함한 모든 파일이 복사됩니다. 어디,

    • -R"재귀적으로 디렉터리 복사"에 대한 플래그

    • -p"지정된 속성 유지(기본값: 모드, 소유권, 타임스탬프), 가능한 경우 추가 속성: context, link, xattr, all"입니다.

    • .현재 디렉터리를 소스로 표시하는 데 사용됩니다.

    • ..상위 디렉터리를 대상으로 나타냅니다.

  2. cd ../- 현재 디렉터리에서 상위 디렉터리로 이동합니다.

  3. rm -rf nested- 디렉터리, 중첩된 디렉터리 및 숨겨진 파일을 포함한 모든 파일이 삭제됩니다.

출처: 매뉴얼 페이지

답변3

위의 솔루션보다 더 간단한 방법은 다음과 같습니다.

mv /usermanagement/usermanagement /usermanagement.tmp
rmdir /usermanagement
mv /usermanagement.tmp /usermanagement

usermanagement즉, 임시 이름을 사용하여 하위 디렉터리를 루트 디렉터리로 이동하고, (지금은 비어 있는) 상위 usermanagement디렉터리를 삭제하고 마지막으로 /usermanagement.tmp디렉터리 이름을 /usermanagement.

답변4

아마도 가장 간단한 해결책은 다음과 같습니다.

$ mv /usermanagement/usermanagement/* /usermanagement/ && rmdir /usermanagement/usermanagement

관련 정보