Как переместить все файлы с расширением в подкаталог?

Я использовал команду даты и формат времени, перечисленные ниже, чтобы успешно установить дату из команды оболочки терминала, выполненной на Android Things, которая использует ядро ​​​​Linux.

дата 092615002017.00

ММДДЧЧММГГГГ.СС

ММ -Месяц -09

ДД -День -26

ЧЧ -Час -15

ММ -Мин. -00

ГГГГ -Год -2017

.SS -секунда -00

0
25.09.2019, 18:03
2 ответа

Эта команда должна делать то, что вы ожидаете:

find "/media/sergio/Seagate Expansion Drive/DOWNS/Spring Framework 5" -type f \! -iname '*.mp4' -execdir mkdir -p rest \; -execdir mv "{}" rest/  \;

В этой команде:

  • -type f:сопоставлять только файлы (избегать перемещения каталогов, символических ссылок или специальных файлов)

  • \!:действовать как логическое «НЕ»

  • -iname:выберите файлы, совпадающие по имени, без учета регистра (Используйте -name, если вы хотите, чтобы они соответствовали регистру)

  • -execdir:запускает команду из подкаталога, содержащего соответствующий файл. Их нам нужно две, одна для создания папки rest/, а вторая для перемещения в нее файла.

отредактировать :добавить отсутствующий интерлиньяж \;, использовать execdirи оставить только одно решение.

0
28.01.2020, 02:39

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

Вместо этого, если вы используете оболочку bash,

#!/bin/bash

shopt -s extglob dotglob

for dirpath in '/media/home/Seagate Expansion Drive/Downloads/Java Spring Gurus'/folder*/
do
    mkdir -p "$dirpath"/rest &&
    mv -i "$dirpath"/!(*.mp4|rest) "$dirpath"/rest
done

Это зациклит все ваши folder*каталоги. Для каждого такого каталога он будет создавать в нем подкаталог rest, а затем перемещать в него все, что не соответствует*.mp4(или самому каталогу rest).

Расширенный шаблон подстановки !(*.mp4|rest)будет соответствовать любому имени, не оканчивающемуся на .mp4, и не rest.

Параметры оболочки extglobпозволяют использовать расширенные шаблоны подстановок в bash, а опция оболочки dotglobпозволяет подстановкам сопоставлять скрытые имена.

1
28.01.2020, 02:39

Теги

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