폴더 내용을 상위 폴더로 이동-Linux 명령 줄


18

많은 파일을 포함하는 folderB를 포함하는 folderA가 있습니다. folderB를 제거하고 싶지만 그 내용은 제거하지 않습니다. 그 내용을 폴더 A 안에 넣고 싶습니다. 커맨드 라인에서 어떻게이 작업을 수행 할 수 있습니까?

답변:


28
$ cd /path/to/folderA
$ mv folderB/* .
$ rmdir folderB

1
mv 폴더 B / *. ? 점은 무엇입니까?
NewLinuxUser

8
도트 파일 (이름이.로 시작하는 파일)은 포함되지 않으므로주의하십시오. 수행 mv folderB/.* .뿐만 아니라 그들을 이동합니다. @NewLinuxUser, 질문의 점은 작업 디렉토리 (이 경우 folderA)의 별칭입니다.
Brian

1
folderB/folderB존재하는 경우 실패 하므로 스크립트에서 사용하지 마십시오.
filipos

1
folderB미친 파일이 포함 된 경우에도 실패 합니다. bash: /bin/mv: Argument list too long의 사용으로 인해 볼 수 있습니다 *. 그 경우 사용의 경우 mv조합은 함께 find@amphetamachine에 의해 진술, 또는처럼for loop
하비에르 데 라 로사

2

빠른 답변 :

cd /path/to/folderA
find folderB -maxdepth 1 -mindepth 1 -exec mv {} . \;
rmdir folderB

코드 하디 답변 :

cd /path/to/folderA
folderB_temp="$(mktemp -d -t folderB.XXXXXX)"
mv folderB "$folderB_temp"
find "$folderB_temp/folderB" -maxdepth 1 -mindepth 1 -exec mv {} . \;
rmdir --parents --ignore-fail-on-non-empty "$folderB_temp/folderB"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.