我正在尝试将 filecontainer 文件夹中的文件移动到 example1 文件夹中。
目录结构为:
/example1
/example2/filecontainer
example1 中没有任何内容。
example2 有一个名为 filecontainer 的文件夹,里面有 example1.sh、example2.sh 和 example3.sh 三个文件
我尝试了下面的命令,但没有移动任何文件。
find ./ -name "example*.sh" | xargs -I% mv % example1
本质上,我想将子文件夹中的文件移动到另一个文件夹。我可以将文件从一个文件夹移动到另一个文件夹,但是当文件夹是子文件夹时,它不起作用。
我必须使用 find 和 xargs,因为稍后我将过滤从今天到一年的文件,并且只将这些文件从子文件夹移动到文件夹。
最佳答案
您根本不需要find
或xargs
吗?你的 shell 会很乐意为你做事:
mv -t/example1/example2/filecontainer/example.*
如果您确实有一个您确实需要找到的更复杂的方案,您可以做很多事情;其中
- 使用
find
的-exec
选项 - 使用
find [location] [-options, such as -name] -print0 | xargs -0 mv -t {目标目录}
。请注意,-print0
使 find 用零字节分隔文件名,这很好,因为其他分隔符(如空格或换行符)在文件名中绝对合法;-0
使 xargs 寻找零字节而不是换行符
顺便说一下,你的代码的问题在于你使用了非常奇怪的引号:你的“
不是”
,这会有所不同为您的计算机。
关于linux - 如何使用 find 和 xargs 将文件从文件夹中的文件夹移动到另一个文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45855358/