Я могу найти все файлы, которые я хочу использовать find, но я хочу использовать mv, чтобы переместить их все в определенную папку. Как я могу это сделать?
Классический подход - find + while loop
find /your/top/directory -maxdepth 1 -type f -print0 | while IFS="" read -r -d "" FILENAME; do mv -t /path/to/destination/directory "$FILENAME";done
Объяснение:
find дает вам список файлов (обозначается символом -type для игнорирования каталогов ) в /your/top/directory, опускается на уровне максимум 1 в структуре каталогов и выводит вывод как строку с нулевым разделением; while в сочетании с read берут каждую часть этой нулевой строки и сохраняют ее в переменной FILENAME. mv выдает текущий файл в каталог назначения, указанный с флагом -t.Этот подход очень полезен, когда вы хотите избежать вывода синтаксического анализа ls, и на самом деле я узнал его здесь.