如何将文件从一个文件夹移动到另一个文件夹?

时间:2017-08-24 02:24:13

标签: linux shell

我正在尝试将特定文件从一个文件夹移动到另一个文件夹。以下是否有效?

mkdir test

touch test1.sh
touch test2.sh
touch test3.sh

mkdir test2

find test/ | xargs -I% mv % test2

2 个答案:

答案 0 :(得分:1)

我认为这可行:

find ./ -name "test*.sh" | xargs -I% mv % test2

答案 1 :(得分:0)

你的例子中有一些奇怪的东西:

如果 test1 包含任何子目录,或者如果您想按原样移动子目录,则只需执行

mv test1/* test2

(请注意,这将(默认情况下)不会移动以句点开头的条目。如果这是一个问题,您应该考虑不使用Posix shell,例如bash或Zsh,或者确实可以使用{{1为安全起见find选项)。

问题始于子目录。 find的输出包含所有目录以及最后的文件。然后,-prune内的mv将移动,例如,目录test1 / foo,如果它以后想要处理文件test1 / foo / bar / baz.txt,则该文件不再在此处。总体效果是您将移动所有子目录(如我的第一个不需要xargs的解决方案),但另外还有大量的错误消息。

相关问题