我具有以下目录结构,想使用ansible而不是全部来获取特定的子目录文件。
/mnt/server1 ->
----> yyy.deb
----> /mnt/server1/All/tttsss.deb
----> /mnt/server1/HS-CLONE/gggg.deb
----> /mnt/server1/HS-TEST/kkkk.deb
我只需要找到/mnt/server1/All/tttsss.deb and /mnt/server1/HS-CLONE/gggg.deb
目录下的文件。我不需要所有其他文件。
当我尝试使用以下逻辑时,父目录文件yyy.deb
也作为输出出现。
- name: Ansible find files in subdirectory examples
find:
paths: /mnt/server1
file_type: file
recurse: yes
use_regex: yes
patterns:
- 'All'
- "HS-CLONE"
- '.*deb$'
register: files_matched_subdirectory
以上逻辑输出为:
输出:
yyy.deb
/mnt/server1/All/tttsss.deb
/mnt/server1/HS-CLONE/gggg.deb
预期输出应为:
/mnt/server1/All/tttsss.deb
/mnt/server1/HS-CLONE/gggg.deb
答案 0 :(得分:1)
之所以发生这种情况,是因为您在find命令中具有以下特定模式,该模式与目录if (logo != nil) {
logoView.image = logo;
} else {
NSString *imagePath = [XXUtility pathForResourceNamed:@"Logo" withExtension:@"png"];
UIImage *imageToAdd = [[UIImage alloc] initWithContentsOfFile:imagePath];
logoView.image = imageToAdd;
}
NSString * labelString = [NSString stringWithFormat:NSLocalizedStringWithDefaultValue(@"welcom banner", @"userInterface", [XXUtility bundleForStrings], @"Dear %@, welcome into game", @"user welcome banner text"), name];
CGSize labelSize = [labelString sizeWithAttributes:@{NSFontAttributeName : textLabel.font}];
textLabel.text = labelString;
中的yyy.deb
匹配
/mnt/server1
您可以使用patterns:
- '.*deb$'
参数明确排除此特定文件:
excludes
或者您可以在pattern参数中尝试以下方法:
- name: Ansible find files in subdirectory examples
find:
paths: /mnt/server1
file_type: file
recurse: yes
use_regex: yes
patterns:
- 'All'
- "HS-CLONE"
- '.*deb$'
excludes:
- 'yyy.deb'
register: files_matched_subdirectory