2016 Mar 03; 08:34 AM; Oakville, ON, Canada.
— Вариант с Find,
scsiman, понятен. Я несколько по другому пути пошёл. Я не описал задачу в целом. Задача эта выглядит так.
Есть данные, не мои, моих колег и предшественников на той работе, которую я выполняю. Что-то типа „файлопомойки”. Структуры никакой архивы в перемешку с директориями архив в архиве и директории со многими поддиректориями.
— Есть у меня скрипт я его писал с помощью приходящего нашего программиста,который отнекивался и говорил, что не знает bash, но ничего освоил

. Этот скрипт собирает все файлы в одну директорию при этом переименовывает файлы с одинаковыми именами.
#!/bin/bash
# ./zxcv.sh qq ww → команда, где „qq“ папка с файлами и папками
# а „ww“ папка назначения
# собрать файлы в одну директорию из
# директории с поддериекториями;
# файлы с одинаковыми именами должны
# быть переименованы
# rename: присоединяет char к имени из filename
# (до расширения, если оно есть)
# rename(filename, char) -> <name><char>[<ext>]
rename()
{
local filename=$1 char=$2
echo "$filename" | sed 's/^\([^.]*\)/\1'$char'/'
}
[ $# -eq 2 ] || {
echo "usage: `basename $0` srcdir dstdir" 1>&2
exit 1
}
srcdir=$1
dstdir=$2
[ -d "$srcdir" -a -d "$dstdir" ] || {
echo "error: dir doesn't exist" 1>&2
exit 1
}
find "$srcdir" -type f | sort | while read line; do
srcfile="$line"
dstfile="$dstdir/`basename "$line"`"
while [ -f "$dstfile" ]; do
dstfile=`rename "$dstfile" "_"`
done
echo "moving: $srcfile -> $dstfile"
/bin/mv "$srcfile" "$dstfile" || {
echo "error: can't move $srcfile to $dstfile" 1>&2
exit 1
}
done
exit 0
— Иными словами все архивы в числе других файлов оказываются в одной известной директории в данном случае
“ww”. А когда они находятся в одной директории извлечение данных не представляет труда.
— Сейчас я работаю над “мегапроектом

” скрипта который должен распаковать все архивы и архивы в архивах т.е. чтобы получить одну директорию просто с извлечёнными файлами если имена файлов совпадают, они должны быть переименованы.
— Т.е. хочу расширить возможности приведенного выше скрипта собрать все файлы из директорий и поддиректорий и из архивов в одну директорию.