많은 파일을 포함하는 folderB를 포함하는 folderA가 있습니다. folderB를 제거하고 싶지만 그 내용은 제거하지 않습니다. 그 내용을 폴더 A 안에 넣고 싶습니다. 커맨드 라인에서 어떻게이 작업을 수행 할 수 있습니까?
많은 파일을 포함하는 folderB를 포함하는 folderA가 있습니다. folderB를 제거하고 싶지만 그 내용은 제거하지 않습니다. 그 내용을 폴더 A 안에 넣고 싶습니다. 커맨드 라인에서 어떻게이 작업을 수행 할 수 있습니까?
답변:
$ cd /path/to/folderA
$ mv folderB/* .
$ rmdir folderB
mv folderB/.* .
뿐만 아니라 그들을 이동합니다. @NewLinuxUser, 질문의 점은 작업 디렉토리 (이 경우 folderA)의 별칭입니다.
folderB/folderB
존재하는 경우 실패 하므로 스크립트에서 사용하지 마십시오.
folderB
미친 파일이 포함 된 경우에도 실패 합니다. bash: /bin/mv: Argument list too long
의 사용으로 인해 볼 수 있습니다 *
. 그 경우 사용의 경우 mv
조합은 함께 find
@amphetamachine에 의해 진술, 또는처럼for loop
빠른 답변 :
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"