Привет! Я работаю над сценарием, который синхронизирует контент с удаленного сайта с использованием SFTP, а затем извлекает любые архивы.Однако я изо всех сил пытаюсь получить извлеченные файлы в правильный (исходный) каталог.
Я начал с цикла for, но подумал, что это может быть более эффективным.
list=`find $local_dir -type f -name *.rar`
for line in $list; do
DEST=${line%/*}
unrar x -o- $line $DEST
done
Требования:
1. Find all RAR files
2. Extract all rar files to the directory each rar is located
/sync/testfile.rar --> /sync/testfile.file
/sync/testdir/testfile1.rar --> sync/testdir/testfile1.file
/sync/testdir/testfile2.rar --> sync/testdir/testfile2.file
Вот моя текущая команда.В цикле, который я использовал, я специально вызывал пункт назначения, но не уверен, как это сделать здесь, в одной строке.
find $local_dir -type f -name '*.rar' -exec unrar x -o- {} \;
Я также пытался unrar xe -o-
, но это дает мне тот же результат, когдасодержимое извлекается в каталог, из которого был запущен скрипт.