特定のディレクトリ内のどのファイルがGitで管理されていないかを知りたいです。私がこれを行う理由は、バックアップにGitを使用し、最終的にすべてのファイルをGitに保存したいからです。
これを行うことができるUnixツールは何ですか?find
合理的に効率的な方法でこれを行う方法はありますか?
例:
RFC関連のコンテンツを保存するフォルダがあります。
.
├── TheFile
└── tests
├── 4180
│ └── data
│ ├── bad
│ └── good
│ └── linebreaks.csv
├── get-rfc.sh
├── .git <contents omited>
├── LICENSE
├── README
└── rfc4180.txt
私は私を出力するコマンドを探しています。
TheFile
ベストアンサー1
find the_starting_dir \( -type d -exec test -d '{}'/.git \; -prune \) -o -print
最も移植性の高い find 呼び出しではありませんが、GNU find で動作します。
検索はディレクトリツリーに移動します。この用語は-prune
true を返しますが、find
サブツリーの追加処理を停止します。したがって、左側には-o
「これがディレクトリであり、サブディレクトリがtest
あると言えばと言い、trueを返す.git
とprune
ツリーでこれが完了したのです」と言います。右側には「別の方法で印刷」と表示されています。
目次を印刷したくない場合は、に-print
変更します\( ! -type d -print \)
。ただし、目次が空であることを示す表示は表示されません。
-print
次に変更してリストを取得できます-ls
。-printf
マニュアルを見るその他など