Bash:一次一个 mv 目录

Nin*_*Cat 7 scripting filesystems file-transfer

我正在尝试将文件夹的所有子目录移动到同一服务器上的另一个共享。如果我执行 mv *,我将耗尽空间,因为直到所有文件夹都被传输后才会删除文件夹。所以我想创建一个循环遍历每个脚本的简短脚本。有没有人有我可以看看的例子?我四处搜索,但找不到我要找的东西。

daw*_*wud 20

你可以使用rsync(1)

rsync --remove-source-files /path/to/source /path/to/destination
Run Code Online (Sandbox Code Playgroud)

这将从原始路径中删除成功传输的文件。

  • +1 为了使用适当的工具来完成适当的工作,并不是每项任务都最好在快速制作的 bash 脚本中完成 (2认同)

Mic*_*ton 10

你要for

一个例子(这只会显示将要做什么):

for item in *; do
    echo mv "$item" /destination/directory
done
Run Code Online (Sandbox Code Playgroud)

当你快乐时,删除echo它以真正做到这一点。