Maven
私のプロジェクトのディレクトリ構造を作成しました。
$ tree -a -I .git
.
├── .gitignore
├── README.md
├── pom.xml
└── src
├── main
│ ├── java
│ └── resources
└── test
├── java
└── resources
7 directories, 2 files
今構造をに維持したいと思います.git
。これには生成が必要です。仮想ファイルサブディレクトリにあります。.gitkeep
すべてのファイルに空のファイルを(再帰的に)どのように追加しますか?空のサブディレクトリ?
次の質問では、すでにサブディレクトリに(再帰的に)空のファイルを作成する方法について説明していますが、ファイルは以下でのみ生成できます。リーフディレクトリそしてどちらもありません。中間ディレクトリ
答え1
~からライアン・アームストロングのブログfind
、GNU、または互換バージョンを使用して実行する方法は次のとおりです。
find . -type d -empty -not -path "./.git/*" -exec touch {}/.gitkeep \;
find . -type d
(再帰的) 現在のパスでディレクトリを探す-empty
特定のコンテンツがすでに含まれているディレクトリのフィルタリング-not -path "./.git/*"
.git
ディレクトリにファイルが作成されていないことを確認してください。-exec touch {}/.gitkeep \;
.gitkeep
上記の基準に一致するすべてのディレクトリに空のファイルを作成します。
結果の構造は次のとおりです。
$ tree -a -I .git
.
├── .gitignore
├── README.md
├── pom.xml
└── src
├── main
│ ├── java
│ │ └── .gitkeep
│ └── resources
│ └── .gitkeep
└── test
├── java
│ └── .gitkeep
└── resources
└── .gitkeep
7 directories, 7 files
答え2
zshを使う:
() {touch -- $^@/.gitkeep} **/*(/^F)
どこ:
**/
:任意の数(0を含む)のサブディレクトリ(再帰的にグローバル)。隠しファイルとディレクトリはデフォルトで無視されます。(/^F)
:グローバル修飾子:/
: ファイル形式目次^F
:不完全F
(空)
{} {body} arguments
:匿名機能:$^@
:$@
有効にすると、...代わりに...と同じようにrc_expand_param
拡張されます。それ以外の場合は実行されます。$^@/.gitkeep
$1/.gitkeep
$2/.gitkeep
$n/.gitkeep
$1
$2
$n/.gitkeep