Unison
Unison:忽略所有帶有 *.ext 的文件,特定子目錄中的文件除外
我正在嘗試使用 Unison (2.40.102) 執行同步,我想忽略具有特定副檔名的所有文件,例如
*.ext
,但如果它們位於特定子文件夾中,則不要忽略具有此副檔名的文件。文件夾結構:
main_dir |file.ext |... |--sub_dir_1 |more_files.ext |... |--sub_dir_2 |even_more_files.ext |... |--dir_I_want_to_sync |sync_this_file1.ext |... |sync_this_fileN.ext |--some_arbitrarily_named_dir |also_sync_this.ext |... |--more_arbitrarily_named_dirs_with_ext_files_in_them |...
由於文件夾結構不是恆定的,我不能只忽略特定的路徑,而是必須非常普遍地這樣做。我的想法是首先忽略所有帶有副檔名的文件,
*.ext
然後取消忽略下面的文件dir_I_want_to_sync
。但是,那是我找不到正確的命令…我的個人資料文件的相關部分如下所示:
# Ignore all files with extension *.ext ignore = Name {.,}*{.ext} # Try to not ignore the files within the subdirectory (NOT WORKING) ignorenot = Path */dir_I_want_to_sync/* # 1) ignorenot = Name */dir_I_want_to_sync/{*/}*{.ext} # 2)
備註:
- 不做任何事情,因為文件被它們的文件名而不是它們的路徑
忽略 2) 旨在反轉對 中的所有文件的忽略
dir_I_want_to_sync
,但它不會擷取所有子文件夾。有沒有辦法將文件應用
ignorenot = Name ...
到文件,無論它在目錄結構中有多深,只要它位於具有特定名稱的目錄下方?(我希望這不會太令人困惑。我很高興澄清!)
當您需要匹配任意目錄深度時使用
Regex
而不是。Path
ignore = Name *.ext ignorenot = Regex .*/dir_I_want_to_sync/.*\.ext