Оказывается, проблема в том, что systemd игнорирует все, что находится внутри /dev/block
.
/dev/block/ec2/ephemeral0
была симлинк, созданный правилом udev, поэтому решение проблемы заключается в том, чтобы просто настроить правило udev и поместить симлинк куда-нибудь еще. Я решил поместить его в /dev/disk/ec2/ephemeral0
вместо этого.
$ udevadm info -q symlink -n /dev/xvdb
disk/by-uuid/ae145d53-9501-419f-b9b1-7416e5c4fec9 disk/ec2/ephemeral0
$ systemctl list-units -a | grep 'xvdb\|ephemeral0'
dev-disk-ec2-ephemeral0.device loaded active plugged /dev/disk/ec2/ephemeral0
dev-xvdb.device loaded active plugged /dev/xvdb
sys-devices-vbd\x2d2064-block-xvdb.device loaded active plugged /sys/devices/vbd-2064/block/xvdb
Source: http://lists.freedesktop.org/archives/systemd-devel/2014-August/021919.html
Ваша команда Find работает в проблеме, что промежуточные каталоги (в данном случае / Home / Bruno / Archiv / Bilder / 2013/01 / 23 /
еще не созданы. Это не имеет ничего общего с (безвредным) ».
'В вашем пути.
Вы либо должны сначала создать целую структуру каталогов к цели, либо сделать небольшой сценарий, который вы вызываете вместо MV
, который сначала создает целевой каталог, а затем выполняет движение.
MkDirmv
:
#!/bin/sh
mkdir -p -- "$(dirname $2)"
mv -- "$1" "$2"
Для будущего ссылки - вы можете использовать Установить
, чтобы сделать это напрямую:
Установить -D ./2013/01/10/IMG_0141.jpg ../Archiv/bilder/2013/01/ 10 / IMG_0141.jpg
Примечание. Вам необходимо добавить путь к файлу во втором аргументе для этого. Другими словами:
Неверно :
Найти. actime +365 -Exec install --d '{}' ../achiv/bilder/ \;
Правильно :
Найти. actime +365 -exec install instate -d '{}' '.../ Archiv / Bilder / {}' \;
По словам MAN страницы Установить
:
-D создать все ведущие Компоненты Dest, за исключением последнего, затем копирования источника для DEST