在OSX终端中移动目录中所有文件的命令

6

我现在在OSX终端,尝试将很多文件从〜/桌面/目录/移动到〜/桌面/目录/目录2

命令:

mv *.* ~/Desktop/dir/dir2

无法工作。


1
你收到了什么错误?你正在运行mv命令的目录是哪个? - anubhava
1
尝试从~/Desktop/dir移动文件。错误是“参数太多”。 - Gara Dash
2个回答

10
您之所以会出现“参数过多”错误,是因为在命令行上使用的glob匹配模式允许太多位于“~/Desktop/dir/”目录下的文件。
如果您要将“~/Desktop/dir/”目录下的所有文件移动到“~/Desktop/dir/dir2”目录中,请改用以下方式运行find命令:
find ~/Desktop/dir/ -type f -execdir mv '{}' ~/Desktop/dir/dir2 \;

或者移动包括文件和目录在内的所有内容,使用以下命令:

cd ~/Desktop/dir/
find . -path './dir2' -prune -o ! -name . -exec mv '{}' ./dir2 \;

即除了 dir2. 之外的所有内容都移动到 ~/Desktop/dir/dir2

你在哪里看到 OP 出现了“参数过多”的错误? - trojanfoe
@trojanfoe:这是OP在上面回答我的问题时提到的。 - anubhava

0

*.* 匹配所有在第二个位置或更靠后的位置有一个点的文件名。它不会匹配没有点的文件名。使用 * 将匹配所有不以点开头的文件名。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接