5

我在一个示例中遇到了 find 命令的使用,如下所示(它在某个位置复制了目录结构)

 find olddir -name script.sh -printf "%p\0" -printf "newdir/%P\0" | xargs -0L2 cp -n

我不清楚 %p 和 %PI 之间的区别阅读了 find 的手册页,它并没有说太多

 %p     File's name.
 %P     File's name with the name of the command line argument under which it was found removed.

%p 和 %P 有什么区别

我对它的含义感到困惑

 %P     File's name with the name of the command line argument under which it was found removed.
4

1 回答 1

8

你甚至尝试过吗?,%p在您的示例中,打印包含该olddir部分的文件,并%P在没有的情况下打印它。几乎正是文档所说的。简单的例子:

$ ls -R
.:
dir/

./dir:
file
$ find dir -name file -printf '%p\n'
dir/file
$ find dir -name file -printf '%P\n'
file
于 2013-03-10T17:04:19.363 回答