Как я могу использовать & ldquo; mv & rdquo; собрать все файлы, найденные & ldquo; find & rdquo; в той же папке?

Я могу найти все файлы, которые я хочу использовать find, но я хочу использовать mv, чтобы переместить их все в определенную папку. Как я могу это сделать?

1
задан 11 November 2015 в 01:52

1 ответ

Классический подход - 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, и на самом деле я узнал его здесь.

0
ответ дан 23 May 2018 в 15:53

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

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