终端:如何将文件粘贴到目录中的所有子文件夹?

时间:2015-01-28 05:57:20

标签: git terminal gitignore

基本上,我创建了一个.gitignore文件,其中包含以下内容(忽略所有类文件但不.gitignore文件):

# Ignore files below
*.class


# but not these files
!.gitignore

我想将其传播到目录中的所有子文件夹甚至子子文件夹。

我知道我可以通过手动复制和粘贴它来以天真的方式做到这一点。

但是有没有更好的方法来使用终端中的一些命令来做到这一点?

2 个答案:

答案 0 :(得分:1)

find . -type d -print | xargs -L 1 cp .gitignore

find命令打印出所有目录的名称。包括。

带有-L 1参数的xargs命令对找到的每个目录执行cp .gitignore <dir>

您将在当前目录中看到有关不将.gitignore复制到自身的错误。

答案 1 :(得分:1)

您不必(“将此传播到目录中的所有子文件夹甚至子子文件夹”):

.gitignore规则将应用于所有子文件夹,除非另一个.gitignore规则(在其中一个子文件夹中)覆盖该规则。

请参阅Pro Git book gitignore section

  

从与路径相同的目录中的.gitignore文件或任何父目录中读取的模式,其中较高级别文件中的模式(直到工作树的顶层)被较低级别的文件覆盖级别文件到包含该文件的目录。