Спасибо, вечером попробую, отпишусь.
Пользователь добавил сообщение 17 Января 2018, 21:59:02:
for i in $(find /path/to/dir/with/archives -type f -name '*.7z')
Что-то надо добавить видимо.
Имена файлов содержат пробелы и в итоге в массив попадают не пути слов, а разделенные пробелами
вместо:
/путь/к/файлу 1
/путь/к/файлу 2
выдает
/путь/к/файлу
1
/путь/к/файлу
2
правильно я понимаю что необходимо добавить строку?
IFS=$'\n'
Пользователь добавил сообщение 18 Января 2018, 00:04:13:
Поправте если что не так.
Вроде работает
#!/bin/bash
path='/путь/кфайлу/Рабочий стол/TestArh'
# получаем масив с путями с файлами 7z
IFS=$'\n'
for i in $(find $path -type f -maxdepth 1 -name '*.7z')
do
# проверяем нормальный ли архив
7z t $i
RES=$?
if [ "$RES" = "0" ]
then
#пытаемся распаковать
7z x $i -o$path
RES=$?
if [ "$RES" = "0" ]
then
rm $i
else echo $i' - не распакован' >> $path'/log'
fi
else echo $i' - не прошел проверку' >> $path'/log'
fi
# 7z x $i -o$path
done
EvangelionDeath - еще раз спасибо!
А ещё для себя заметка:
Гуглить exit codes