首页 > 解决方案 > 从目录与另一个目录运行 Find 命令

问题描述

我做错了什么,但无法弄清楚它是什么。我正在尝试将文件夹(文件夹 A)中的所有文件移动到另一个文件夹(文件夹 B),没有任何子目录并且不包括某些文件

当我在文件夹中时,我运行...

cd folderA
find . -path './*' -prune -not \( -name "file1.php" -o -name "file2.txt" \) -type f -exec mv -f {} ~/folderB/ \;

这很好用。但是我想在 bash 脚本中运行上面的 find 命令并且不想去文件夹,所以我尝试了......

find ~/folderA/ -path './*' -prune -not \( -name "file1.php" -o -name "file2.txt" \) -type f -exec mv -f {} ~/folderB/ \;

没事了!我究竟做错了什么。

提前致谢

标签: findmv

解决方案


剥离上述命令后,我发现了问题。由于某种原因-path './*' -prune,在直接文件夹之外不起作用。这是我用来让它在文件夹本身之外工作的命令......

find ~/folderA/ -maxdepth 1 -not \( -name "file1.php" -o -name "file2.txt" \) -type f -exec mv -f {} ~/folderB/ \;

同样,不确定方法-maxdepth 1是否适用于另一种方法,但确实如此。

仅供参考...如果您想进一步进入子目录,您可以通过更改1


推荐阅读