Scripting
列出未儲存在 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
find the_starting_dir \( -type d -exec test -d '{}'/.git \; -prune \) -o -print
不是最便攜的 find 呼叫,但可以與 GNU find 一起使用。
Find 遍歷目錄樹。該術語
-prune
返回 true,但停止find
進一步處理子樹。所以左邊-o
說“如果這是一個目錄,如果test
說有一個子目錄被呼叫.git
,如果prune
返回true,那麼我們就完成了樹中這個東西的處理”。右邊寫著“否則列印出來”如果您不想列印目錄,請更改
\( ! -type d -print \)
但您將不會得到任何有關空目錄的指示。您可以將 更改
-ls
以獲取列表,-printf
請參閱手冊等。