将目录全部移动到顶部

我采取了其中有一个数字目录和文件的目录的备份。 最近有些文件丢失了。 我想移动丢失的文件。

我更喜欢移动文件,而不是仅仅复制,因为空间对于这个特定的盒子是很重要的,而且文件相当大。

我怎样才能实现这个没有GUI和命令行?

快速和肮脏的方式是我们的mv(移动)命令与-n或–no-clobber选项。

从mv手册页:

-n, --no-clobber do not overwrite an existing file 

例:

你们两个目录:

/文件/

/备份/

如果/ files是缺less文件的原始目录,并且/ backup目录是最新的备份,则该命令将是:

mv -n / backup / * /文件

如果您的Linux / Unix版本不支持-n选项,则可以使用-i选项执行相同的操作,但它会询问您是否要覆盖现有文件。 你将不需要回答每个文件。 它不会问你目标目录中是否存在该文件。

从mv手册页:

  -i, --interactive prompt before overwrite 

即mv -i / backup / * /文件

小心。

JIMT

就我个人而言,我发现自己经常使用rsync来做这种事情。 阅读手册页。 有很多的select,可以学习很多,但从长远来看,我认为这是值得的。 最好的部分是它是免费的,并且已经在大多数Linux系统上安装。

在rsync的选项中,只包括更新自上次更新以来发生更改的文件,能够过滤某些文件和目录,可以先执行干运行以及许多其他function。 值得注意的是,rsync不仅可以在主机系统上的文件之间复制,甚至可以在networking上复制。 所以,不过你已经备份了你的文件,它应该可以工作。 快速查看手册页看起来-remove-source-files选项与移动文件类似。 您甚至可能会发现,您已经足够使用它来下次进行备份。

使用Beyond Compare试用版进行文件夹比较 ,然后将文件移动到那里。 简单。

类似于JimT的答案:

 cd /backupdir for file in `find . -type f` do yes no | mv -i $file /origdir/`dirname $file` done 

其中“/ backupdir”是您的备份目录,“/ origdir”是您的原始源目录。

“yes”命令对于处理交互式命令非常有用。 在这种情况下,当要求覆盖现有文件时,会自动回答“否”,因此只有丢失的文件才会被移动。