tar一个目录,只包含某些文件types

遵循这里的说明: http : //linuxdevcenter.com/pub/a/linux/lpt/20_08.html

我的目标是打造一个目录,但只想包括该目录中的.php文件。

鉴于上述指示,我已经拿出这个命令。 它创build一个名为IncludeTheseFiles的文件,其中列出了所有.php文件,然后tar应该只使用IncludeTheseFiles中列出的文件

find myProjectDirectory -type f -print | \ egrep '(\.[php]|[Mm]akefile)$' > IncludeTheseFiles tar cvf myProjectTarName -I IncludeTheseFiles 

但是,当我运行这个它不喜欢我包括选项?

 tar: invalid option -- I 

这是诀窍,不需要比较文件:

 find myProjectDirectory -type f \( -name \*\.php -o -name \*\.js -o -name \*\.css -o -name \*\.inc \) | xargs tar -rf myProjectTarName.tar 

阅读我的Ubuntu 8.04系统上的Gnu tar的手册页,它说:

 -T, --files-from F get names to extract or archive from file F 

除了提及历史上它被用来请求bzip压缩之外,它不引用-I选项。

你应该能够指定stdin作为你的文件名的来源。 尝试:

 find myProjectDirectory -type f -regextype posix-egrep -regex ".*/(.*\.[php]|[Mm]akefile)$ -print | \ tar cvf myProjectTarName --files-from=-