Конечно, вы можете сделать это с помощью очень маленького скрипта Bash.
Я предполагаю, что у вас есть список выбранный.txt
в вашем домашнем каталоге, в котором Pictures является подкаталогом. Если это не так, измените пути соответствующим образом.
Сначала создайте каталог для перемещения файлов. Я предполагаю, что вы только что открыли терминал и находитесь в своем домашнем каталоге. Вы можете переместить каталог позже.
mkdir Избранные
Теперь проверьте, можете ли вы найти правильные файлы, используя свой список следующим образом:
при чтении строки -r; найти картинки -name "$line" -ls; сделано < выбрано.txt
Если результат выглядит правильно, вы можете скопировать файлы, изменив команду:
при чтении строки -r; найдите изображения -name "$line" -exec cp -vt ChosenOnes {} \; ; сделано < выбрано.txt
Мы можем сделать это немного лучше:
#!/бин/баш
# прочитайте наш список и
при чтении строки -r; делать
# находим в нем файлы и копируем их в новый каталог
найти картинки -name "$line" -exec cp -vt ChosenOnes {} \;
сделано < выбрано.txt
Объяснение
при чтении строки -r; заниматься вещами; сделано <входной-файл
А пока
цикл продолжает что-то делать, пока выполняется условие. Здесь мы просим, чтобы наш список читался построчно. Каждая строка будет помещена в переменную линия
так что мы можем запустить некоторые команды на нем. Когда мы закончим с нашей командой (командами) в этой строке, будет прочитана следующая строка, пока в нашем файле не закончатся строки.
найти путь-имя "$line"
найти
Команда выполняет рекурсивный поиск по заданному пути (в нашем случае — по картинкам). Здесь мы используем -имя
возможность найти файлы, соответствующие именам в списке.
-ls
найти
Команда имеет возможность вывести список найденных файлов. Это полезно для проверки того, что было найдено, прежде чем предпринимать какие-либо действия.
-exec команда {} \;
-exec
опция find запускает данную команду для найденных файлов (представленных {}
)
ср -vt
-v
вариант делает ср
расскажи нам, что он делает. -т
option указывает место назначения (директорию назначения мы указываем сразу после нее); в противном случае пункт назначения будет считаться последним аргументом.