簡體   English   中英

如何使 shell 腳本遞歸掃描目錄並根據名稱模式將某些文件添加到 Git?

[英]How can I make shell script to recursively scan a directory and add certain files based on their name patterns to Git?

如何使 shell 腳本遞歸掃描克隆的 Git 目錄並根據名稱模式刪除某些文件? 如果文件滿足以下任一條件,

  1. 文件名長度超過 150 個字符。 我不介意腳本包含或排除擴展名。 我不需要那么高的准確性。 大約 150 個就足夠了。
  2. 該文件的文件名中包含一個:(冒號)。

如果任何文件匹配,則應使用git rm </path/to/file/file name>

提前致謝。

使用find進行掃描:

find . -regextype egrep \( -name .git -prune \) -o \
       \( -type f -regex '.*(:[^/]*|[^/]{151,})$' -exec git rm '{}' \+ \)

(當然,先在沒有-exec位的情況下進行試運行以確保它按預期工作)

注意:這假定 GNU find ,因為您標記了問題linux

這告訴find跳過任何.git子目錄,對於目錄樹中的所有其他常規文件,如果最后一個/分隔的組件(文件名 + 擴展名,如果有)有冒號或 151 個或更多字符,則將其忽略到git rm

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM