Единственным путем я могу думать о выполнении, это должно циклично выполниться многократно с находкой и выполнить сценарий, который удаляет файлы после того, как они были правильно распакованы. Это должно будет пробежаться через подкаталоги многократно, таким образом, это не точно эффективно. (ожидаемые имена файлов полужирным на вершине)
recursive_unpack
#!/bin/bash
if [ -d "$1" ]; then
STARTDIR="$1"
else
echo "starting dir not found: $1"
exit
fi
COUNTER=1
while [ $COUNTER -gt 0 ]; do
COUNTER=`find "$STARTDIR" -type f \( -iname '*.zip' -o -iname '*.rar' \) -exec ./unpacker \{\} \; | wc -l`
done
неупаковщик
#!/bin/bash
BASENAME=`basename "$1"`
BASEDIR=`dirname "$1"`
cd "$BASEDIR"
EXT=`echo "$BASENAME" | awk -F . '{print $NF}'`
if [ "$EXT" = "zip" ]; then
unzip -qq "$BASENAME"
if [ $? -eq 0 ]; then
echo "zip unpacked: $1"
rm "$BASENAME"
fi
fi
if [ "$EXT" = "rar" ]; then
unrar e -y -c- -inul "$BASENAME"
if [ $? -eq 0 ]; then
echo "rar unpacked: $1"
rm "$BASENAME"
fi
fi
сделать
chmod u+x recursive_unpack
chmod u+x unpacker
назовите его с ./recursive_unpack "/my/directory/containing/my/files"
unrar
и unzip
потребность, которая будет установленаЧто вы делаете: создаете ssh-соединение от raspi к шлюзу, и пересылаем *: 10110 со шлюза на 127.0.0.1:22 на распи. Затем вы подключаетесь к порту 10110 @ localhost, который в некоторых конфигурациях может использовать ip6-адрес (:: 1), за которым нет туннеля. Затем sshd закрывает соединение. Попробуйте
ssh -4 -p10110 pi@localhost
. Это поможет вам сделать еще один шаг вперед. Если у вас возникли проблемы с поиском правильного ключа (ssh останавливается после определенного количества проверенных ключей), отключите pubkeyauth с
ssh -oPubkeyAuthentication=no -4 -p10110 pi@localhost
Ваш ssh
клиент, похоже, подключается к вашему sshd
через IPv6. Слушает ли sshd
адреса IPv6?
Добавьте эту строку в / etc / ssh / sshd_config
и перезапустите sshd
:
ListenAddress ::
Или вы можете принудительно установить соединение IPv4 с аргументом ssh -4
.