如何使用find和xargs将文件从文件夹中的文件夹移动到另一个文件夹?

时间:2017-08-24 07:23:07

标签: linux command-line find xargs

我正在尝试将filecontainer文件夹中的文件移动到example1文件夹中。

目录结构是:

/example1

/example2/filecontainer

example1中没有任何内容。

example2有一个名为filecontainer的文件夹,其中有三个文件名为example1.sh,example2.sh和example3.sh

我尝试了下面的命令,但没有移动任何文件。

find ./ -name "example*.sh" | xargs -I% mv % example1

基本上我想将子文件夹中的文件移动到另一个文件夹。我能够将文件从一个文件夹移动到另一个文件夹,但当文件夹是子文件夹时,它不起作用。

我必须使用find和xargs,因为我稍后会过滤从今天到一年的文件,只将这些文件从子文件夹移动到文件夹。

1 个答案:

答案 0 :(得分:0)

您根本不需要findxargs吗?你的shell会很乐意为你做点什么:

mv -t /example1 /example2/filecontainer/example.*

如果你确实有一个更复杂的方案,你实际上需要找到,你可以做很多事情;其中

  • 使用find' -exec选项
  • 使用find [location] [-options, such as -name] -print0 | xargs -0 mv -t {target directory}。请注意-print0使得使用零字节将文件名分开,这很好,因为其他分隔符(如空格或换行符)在文件名中绝对合法; -0使xargs查找零字节而不是换行符

顺便提一下,您的代码问题在于您使用了非常奇怪的引号:不是",这对您有所帮助计算机。