我正在使用此命令来存档所有 PHP 文件:
find -name "*.php" | sudo tar -zcpvf my-archive.tar.gz -T -
它工作得很好,除了输出是这样的:
./file1.php
./file2.php
./file3.php
代替:
file1.php
file2.php
file3.php
我需要如何修改我的命令以便 ./ 不包含在我的档案中?
答案1
控制 find 输出的最通用的工具是它自己的 -printf 功能。它具有 %P 序列,其功能是
%P File's name with the name of the command line argument
under which it was found removed.
find -name '*.php' -printf "%P\n"
是相同的
find ./ -name '*.php' -printf "%P\n"
因此从每行开头删除 ./