Это то, что легко с оболочкой Unix. Вы можете сделать это с Башем как хорошо, но вот как вы могли бы сделать это с бесплатной демо - версией моей оболочки Гамильтона C . (Да, я автор.)
Предположим, что вы находитесь в каталоге, содержащем jpgs, и что каталог-содержащие-CD - это путь к каталогу с подкаталогами с компакт-дисками:
set CDs = ``ld -1 directory-containing-CDs`` # Get list of CD directories set covers = *.jpg # Get the list of jpgs for i = 0 to $#covers - 1 do mv $covers[i] directory-containing-CDs\$CDs[i] # Move the jpgs one-at-a-time. end
ld
это псевдоним для запуска ls
, возвращая только каталоги. -1
Опция означает, что записи каждый каталог в отдельную строку. В двойных обратных кавычках превратить каждую строку в отдельное слово (если какие - либо имена каталогов содержат пробела, мы не хотим, чтобы разделить их на отдельные слова).
Если что-то из этого не ясно, просто спросите.