У меня есть большая музыкальная коллекция. Каждая папка альбома имеет файл искусства альбома под названием "album.jpg". Каждое музыкальное устройство автоматической смены дисков, передавая потоком сервер и этажерку, которую я когда-либо использовал, смогло проанализировать искусство альбома, и дисплей сказал искусство. Я просто добавил систему Sonos, и она не проанализирует "album.jpg", она только проанализирует "folder.jpg".
Я хотел бы использовать сценарий удара, чтобы найти каждый экземпляр "album.jpg" в иерархической структуре папок Художника-> Альбом и копировать файл в том же месте и назвать это "folder.jpg". Я испытываю затруднения передать информацию от находки до CP. Я не могу казаться праву синтаксиса.
Спасибо за справку.
Выполните эту команду: find Music -name album.jpg -print0 | while read -r -d
Детали:
-print0
, -r
, и -d вместе гарантируют, что соединяет каналом, которые содержат пробел, не становятся искаженными
${x%/*}
, средства удаляют последнее /
и все, что следует за ним от $x
(например, /foo/bar/album.jpg
становится /foo/bar
) ${x%/*}
, средства удаляют последнее /
и все, что следует за ним от $x
(например, /foo/bar/album.jpg
становится /foo/bar
) Детали:
-print0
, -r
, и -d вместе гарантируют, что соединяет каналом, которые содержат пробел, не становятся искаженными
${x%/*}
, средства удаляют последнее /
и все, что следует за ним от $x
(например, /foo/bar/album.jpg
становится /foo/bar
) ${x%/*}
, средства удаляют последнее /
и все, что следует за ним от $x
(например, /foo/bar/album.jpg
становится /foo/bar
) Если бы набор хранится в файловой системе стиля Unix, я думаю, что использовал бы символьные ссылки для чего-то вроде этого, например,
find path/to/musicfolder -name 'album.jpg' -execdir ln -s {} ./folder.jpg \;