создать папку для каждого файла - PullRequest
0 голосов
/ 29 марта 2020

У меня есть разные файлы, имена которых содержат одинаковый шаблон - 'part + (number)' Например:

part 1.txt
part 2.txt

Я хочу создать папку для каждого файла, назвать папку с тем же именем, что и файл, и вставить файл в соответствующую ему папку.

1 Ответ

0 голосов
/ 29 марта 2020

Чтобы переместить обычные файлы с префиксом part, содержащие суффикс, вы можете сделать:

shop -s nullglob
for file in part*.*; do
  [ -f "$file" ] || continue
  dir=${file%.*}
  mkdir -p "$dir" && mv -i "$file" "$dir"
done

Это позволяет опциям оболочки Bash nullglob расширять несоответствующие шаблоны до нуля строка и
test [ -f "$file" ] || continue пропускает нестандартные файлы. Шаблон ${file%.*} удаляет суффикс из имени файла.
Опция -p игнорирует уже существующий каталог и -i запрашивает, должен ли файл уже существовать в каталоге.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...