폴더 내용을 한 수준 위로 이동

폴더 내용을 한 수준 위로 이동

압축이 풀린 디렉토리가 있지만 폴더에 있습니다. 콘텐츠를 한 단계 위로 이동하려면 어떻게 해야 하나요? SSH를 통해 CentOS에 액세스합니다.

답변1

"myfolder"라는 폴더의 경우 폴더가 파일 계층 구조에서 한 수준 위(원하는 지점)인 경우 명령은 다음과 같습니다.

mv myfolder/* .

예를 들어 데이터가 있으면 명령을 /home/myuser/myfolder실행합니다 ./home/myuser/

답변2

명확하게 하기 위해 Rudu의 답변과 위의 의견에서 발췌했습니다.

.htaccess, .git 등과 같은 모든 항목을 이동해야 하는 경우 명령에 * 및 .*를 포함해야 합니다. 이와 같이:

 mv subfolder/* subfolder/.* .

그러면 하위 폴더의 내용이 현재 폴더로 이동됩니다. 마지막 "." 앞의 공백에 유의하세요.

답변3

이는 다음을 통해 달성할 수 있습니다.

  • 사용 rsync:

    rsync -vua --delete-after foo/ .
    
  • 사용 cprmdir:

    cp -vaR foo/. . && rmdir foo/
    
  • 사용 mv( dotglob활성화 옵션):

    shopt -s dotglob # Includes filenames beginning with a dot.
    mv -- foo/* .    # Where foo/ is the folder consisting the files.
    shopt -u dotglob # Disables previously enabled dotglob option.
    

    foo/폴더의 내용이 한 수준 위로 이동됩니다.

    참조: help shoptman bash.

  • 사용 mv(권장사항에 따라여기):

    mv foo/* foo/.[^.]* . && rmdir foo/
    

    참고: 이름이 foo/..bar...

    참고: POSIX 쉘의 경우 [!.].

답변4

단축 명령이 있어요

cp */* .

그러면 모든 하위 폴더 내용이 복사됩니다. 물론 다음을 사용하여 이동할 수 있습니다.

mv */* .

또는 새 확장명을 지정하세요.

cp */* /destination 

관련 정보