![하위 폴더를 이동하지 않고 폴더의 모든 파일을 다른 폴더로 이동 [중복]](https://linux55.com/image/181153/%ED%95%98%EC%9C%84%20%ED%8F%B4%EB%8D%94%EB%A5%BC%20%EC%9D%B4%EB%8F%99%ED%95%98%EC%A7%80%20%EC%95%8A%EA%B3%A0%20%ED%8F%B4%EB%8D%94%EC%9D%98%20%EB%AA%A8%EB%93%A0%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EB%8B%A4%EB%A5%B8%20%ED%8F%B4%EB%8D%94%EB%A1%9C%20%EC%9D%B4%EB%8F%99%20%5B%EC%A4%91%EB%B3%B5%5D.png)
이라는 폴더가 있습니다 folder1
. 여기에는 여러 개의 파일과 두 개의 하위 폴더가 있으며 subfolder1
. subfolder2
을( 를) folder1
제거 subfolder2
하고 싶습니다 subfolder1
.
어떻게 해야 하나요?
답변1
find
다음 을 사용할 수 있습니다 mv
.
내 폴더 설정은 다음과 같습니다.
$ find folder1
folder1
folder1/subfolder2
folder1/subfolder2/i
folder1/subfolder2/h
folder1/subfolder2/g
folder1/subfolder1
folder1/subfolder1/f
folder1/subfolder1/e
folder1/subfolder1/d
folder1/c
folder1/b
folder1/a
a
귀하의 사례를 시뮬레이션하기 위해 , b
및 c
다음을 이동하고 싶습니다 subfolder2
.
$ find folder1 -maxdepth 1 -type f -exec mv "{}" folder1/subfolder2 \;
이제 다음을 보면 folder1
:
$ find folder1
folder1
folder1/subfolder2
folder1/subfolder2/a
folder1/subfolder2/b
folder1/subfolder2/c
folder1/subfolder2/i
folder1/subfolder2/h
folder1/subfolder2/g
folder1/subfolder1
folder1/subfolder1/f
folder1/subfolder1/e
folder1/subfolder1/d
답변2
셸에서 folder1
디렉터리가 아닌 파일(숨겨진 파일 제외)을 이동 하려면 다음을 수행할 수 있습니다.folder1/subfolder2
zsh
mv folder1/*(^/) folder1/subfolder2/
subfolder1
(분명히 subfolder2
)을 제외하고 유형에 관계없이 모든 파일을 이동하려면 다음을 수행하십시오 .
set -o extendedglob # best in ~/.zshrc
mv folder1/^(subfolder1|subfolder2) folder1/subfolder2
숨겨진 파일도 이동하려면 D
glob 한정자를 추가하세요.
답변3
find
및 xargs
.read 를 사용하세요 man find xargs
. 파일 이름이 어떻게 생겼는지(삽입 공백, 기타 흥미로운 문자) 지정하지 않았으므로 -print0
.
find folder1 -maxdepth 1 -type f -print0 | \
xargs -0 -r mv --target-directory=subfolder2