У меня есть несколько тысяч сжатых текстовых файлов в разных подкаталогах, и я использовал подмножество этих файлов в качестве входных данных для проекта несколько лет назад. Тогда у меня была разархивированная копия файлов, которые я фактически использовала в одном каталоге, но удалила это и сохранила только список этих разархивированных файлов в этой папке.
Это была моя первоначальная идея, LIST
- список файлов. PARENTDIR
- это каталог верхнего уровня, в котором все файлы находятся в различных подкаталогах. Идея состояла в том, чтобы найти все архивы в любом подкаталоге и распаковать их в NEWDIR
#!/usr/bin/env bash
LIST="listfile.txt"
PARENTDIR="/home/user/old/project"
NEWDIR="/home/user/old/project/2016"
while read line;
do
ARCHIVE="$(find $PARENTDIR -name "$line*")"
gunzip --stdout $ARCHIVE >$NEWDIR/$line
done <$LIST
Кажется, я не правильно понимаю команду поиска. Он работает без переменных, но без, даже без подстановки команд, вызова в командной строке. Моя комбинация кавычек и подстановочных знаков не совсем верна, но я не могу понять это правильно, расширение переменных тоже не помогает, и я думаю, что застрял ...