Using the find module to find unknown files in a given directory and
register the results as a variable to be looped through later on. The debug
of the registered var shows a full on array of all kinds of attributes
about the files (way more than I want) - except the file name! It does show
the file name in the files.path, which I should be able to filter with
basename, but that doesn't work either. This either should be much more
straightforward, or my understanding of this is way off.Question: How do I store unknown file names in a dir as a list that I can
loop through in a subsequent task?My current play (I've tried a few different iterations - and the echo is
just an example, would like to do other things like use the script module
and such):---
- hosts: localhost
tasks:
- name: Check the files
find:
paths: /home/gforster/projects/scripts
register: files_found- name: echo files
command: "echo {{ item.path | basename }}"
loop: "{{ files_found.files }}"
It's nothing wrong with this.
Expected Results:
TASK [echo files]
*********************************************************************************************************************
changed: [localhost] => {
"msg": "some_filesname"
}
If you looking for something like this you need to use the debug instead of command module.
- name: echo files
debug: msg="{{ item.path | basename }}"
loop: "{{ files_found.files }}"
Actual Results:
TASK [echo files]
*********************************************************************************************************************
changed: [localhost] => (item={u'uid': 1000, u'woth': True, u'mtime':
1522857501.1654217, u'inode': 20547673299942532, u'isgid': False, u'size':
359, u'roth': True, u'isuid': False, u'isreg': True, u'pw_name': u'gforster'
, u'gid': 1000, u'ischr': False, u'wusr': True, u'xoth': False, u'rusr':
True, u'nlink': 1, u'issock': False, u'rgrp': True, u'gr_name': u'gforster',
u'path': u'/home/gforster/projects/scripts/101_names', u'xusr': False, u
'atime': 1522857501.1649039, u'isdir': False, u'ctime': 1522857501.1654217,
u'wgrp': True, u'xgrp': False, u'dev': 2, u'isblk': False, u'isfifo': False,
u'mode': u'0666', u'islnk': False})
changed: [localhost] => (item={u'uid': 1000, u'woth': True, u'mtime':
1522857463.1172974, u'inode': 9570149208257507, u'isgid': False, u'size':
1261, u'roth': True, u'isuid': False, u'isreg': True, u'pw_name': u
'gforster', u'gid': 1000, u'ischr': False, u'wusr': True, u'xoth': False, u
'rusr': True, u'nlink': 1, u'issock': False, u'rgrp': True, u'gr_name': u
'gforster', u'path': u'/home/gforster/projects/scripts/101_to_masterfile', u
'xusr': False, u'atime': 1522857457.6757936, u'isdir': False, u'ctime':
1522857463.1829827, u'wgrp': True, u'xgrp': False, u'dev': 2, u'isblk':
False, u'isfifo': False, u'mode': u'0666', u'islnk': False})
You output is missing a lot of things, are you sure that you copied all?