
У меня есть несколько rar-файлов, хранящихся следующим образом:
/torrents/televisionshowS01E0$X/nameoftelevisionshow.rar
где $X — переменная ={0,1,2,...,12}
Я хотел бы извлечь их с помощью одной команды в один выходной каталог ( /publicshare/
).
Вот что у меня есть на данный момент:
for i in find /torrents/televisionshowS01*/ -name *.rar; do unrar x "$i" /publicshare/;done
но я получаю следующий результат:
Cannot open /torrents/televisionshowS01E01/.rar
No such file or directory
No files to extract
Однако find /torrents/televisionshowS01*/ -name *.rar возвращает правильные пути.
решение1
О, глядя на bashscript других людей, я понял, что мне нужно было бы поставить обратные кавычки вокруг команды find. Вот так,
for i in `find /torrents/televisionshowS01*/ -name *.rar`; do unrar x "$i" /publicshare/; done
и затем команда сработала так, как я хотел. Хотя я все еще не уверен, ПОЧЕМУ именно. Я предполагаю, что они работают так же, как скобки в математике. Очевидно, на этот раз это сработало, но в порядке хорошей практики мне следовало бы поставить обратные кавычки unrar x "$i" /publicshare/
?
Спасибо