Answers:
$ 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"