Вы не указываете свою ОС, но если вы используете Gnu cp
, вы можете использовать cp week1/*/submit.pdf --backup=t week/
, чтобы иметь (произвольно) числовые файлы, которые уже существуют; но это не даст вам никакого реального способа определить, кто есть что.
Возможно, вы могли бы сделать что-то вроде этого:
for file in week1/*/submit.pdf; do cp "$file" "${file//\//-}"; done
… который создаст файлы с именем что-то вроде «week1-subdir-submit.pdf»
Что бы это ни стоило, запись "${var/s/r}"
означает взять var , но перед тем, как вставить его значение, ищите s (\/
, что означает /
, экранирование из-за другого специального /
в этом выражении) и замените его на r (-
), чтобы создать уникальные имена файлов.
Редактировать : На самом деле есть еще один /
, чтобы сделать его несколько раз подходящим, с синтаксисом:
"${ var / / \/ / - }"
take "var" replace every instance of / with -