이라는 폴더가 있습니다 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