如何将文件夹的内容移动到当前文件夹?

Bla*_*ack 8 cp mv

我有这个文件夹结构:

foo
`----> bar
Run Code Online (Sandbox Code Playgroud)

如何提取barinto的内容foo

mv -f bar/* .从内部尝试过foo

-f, --force | 覆盖前不要问

但我得到“无法移动bar/ajax到,foo/ajax因为目录不为空”

我该如何解决这个问题?

mur*_*uru 16

mv会覆盖文件,但会拒绝覆盖目录。没有单个命令可以合并目录并删除源目录(这可能是您想要的mv)。甚至rsync --remove-source-files会留下空目录。

您可以使用以下命令的组合:

cp -a dev/. .
rm -r dev
Run Code Online (Sandbox Code Playgroud)

它将所有内容复制dev到当前目录,然后删除该dev目录。

或者:

rsync -a --remove-source-files dev/ .
find dev -depth -type d -exec rmdir {} \;
Run Code Online (Sandbox Code Playgroud)

它用于rsync移动所有文件,然后删除留下的空目录。