find -exec 其中 filename 不是最后一个参数

find -exec 其中 filename 不是最后一个参数

我正在尝试将文件从 find 命令传递给 adb push,如下所示:

find . -name "test0[4-8]*.py" -exec adb push {} \; /storage/emulated/0/

我收到错误 find: paths must precede expression: /storage/emulated/0/

我怎样才能指定这/storage/emulated/0/不是一条路径。

答案1

表示命令结束的分号exec应该位于谓词的末尾exec

find . -name "test0[4-8]*.py" -exec adb push {} /storage/emulated/0/ \;

答案2

我假设 /storage/emulated/0/ 是远程设备上的路径?所以它应该构成命令的一部分,你的 \; 位于它之前。

find . -name "test0[4-8]*.py" -exec adb push {} /storage/emulated/0/ \;

如果这仍然给您带来问题,请将每个“/”替换为“/”以转义它们。实际上,从 -exec 到 \; 的所有内容都会发送到子 shell 中,其中 {} 替换为找到的每个文件的路径。

相关内容