Нужно добавить зависимости, чтобы каталоги создавались раньше файлов в них.
Можно использовать «маркерный» файл для зависимости от каталога, таким образом, создание файла под ним не будет касаться временной метки каталога. Это также не требует каких-либо специальных функций GNU.
В вашем примере:
install: dir/file
dir/.marker:
mkdir -p dir
touch dir/.marker
dir/file: dir/.marker
cp source dir/file
Вы можете использовать что-то вроде .directory
, .dir
или .folder
для файла маркера...
Чтобы получить список пользователей, которым принадлежат файлы в данном каталоге:
stat -c %U /path/to/directory/* | sort -u
Чтобы узнать, сколько файлов и каталогов принадлежит пользователю:
find /path/to/directory/ -maxdepth 1 ! -type l -user <username> | awk 'END{print "username owns " NR " files"}'