如何将文件向上移动一个目录

San*_*der 3 linux ssh mv

我在 /home/ 中有大约 200 个目录。问题是它们都以这种方式存在:

/home/{用户}/homedir/

虽然它应该只是:

/home/{用户}/

使用什么命令可以为每个用户批量将 homedir 的所有内容向上移动一个目录?

谢谢您的帮助。

Sma*_*ger 5

根据您的 shell,这可能会有所不同,但假设 bash:

for a in $(find /home -maxdepth 1 -type d); do mv $a/homedir/* $a/; rmdir $a/homedir; done
Run Code Online (Sandbox Code Playgroud)

find在运行完整命令之前单独运行该命令以验证列表是否符合您的预期,rmdir如果您希望homedir在每个文件夹中保持空白,则删除该部分。

  • 是的,它会; 但如果您是那种在系统中创建用户帐户且其中包含空格和换行符的人,那么您已经无能为力了。:) (5认同)