Используя удар для нахождения файла и дубликата с новым именем?

У меня есть большая музыкальная коллекция. Каждая папка альбома имеет файл искусства альбома под названием "album.jpg". Каждое музыкальное устройство автоматической смены дисков, передавая потоком сервер и этажерку, которую я когда-либо использовал, смогло проанализировать искусство альбома, и дисплей сказал искусство. Я просто добавил систему Sonos, и она не проанализирует "album.jpg", она только проанализирует "folder.jpg".

Я хотел бы использовать сценарий удара, чтобы найти каждый экземпляр "album.jpg" в иерархической структуре папок Художника-> Альбом и копировать файл в том же месте и назвать это "folder.jpg". Я испытываю затруднения передать информацию от находки до CP. Я не могу казаться праву синтаксиса.

Спасибо за справку.

0
задан 6 March 2017 в 13:49

2 ответа

Выполните эту команду: find Music -name album.jpg -print0 | while read -r -d

Детали:

  • -print0, -r, и -d вместе гарантируют, что соединяет каналом, которые содержат пробел, не становятся искаженными
  • ${x%/*}, средства удаляют последнее / и все, что следует за ним от $x (например, /foo/bar/album.jpg становится /foo/bar)
\0' вместе гарантируют, что соединяет каналом, которые содержат пробел, не становятся искаженными
  • ${x%/*}, средства удаляют последнее / и все, что следует за ним от $x (например, /foo/bar/album.jpg становится /foo/bar)
  • \0' x; do cp "$x" "${x%/*}/folder.jpg"; done

    Детали:

    • -print0, -r, и -d вместе гарантируют, что соединяет каналом, которые содержат пробел, не становятся искаженными
    • ${x%/*}, средства удаляют последнее / и все, что следует за ним от $x (например, /foo/bar/album.jpg становится /foo/bar)
    \0' вместе гарантируют, что соединяет каналом, которые содержат пробел, не становятся искаженными
  • ${x%/*}, средства удаляют последнее / и все, что следует за ним от $x (например, /foo/bar/album.jpg становится /foo/bar)
  • 0
    ответ дан 3 November 2019 в 16:16

    Если бы набор хранится в файловой системе стиля Unix, я думаю, что использовал бы символьные ссылки для чего-то вроде этого, например,

    find path/to/musicfolder -name 'album.jpg' -execdir ln -s {} ./folder.jpg \;
    
    0
    ответ дан 3 November 2019 в 16:16

    Другие вопросы по тегам:

    Похожие вопросы: