Как использовать, 'ожидают' с 'zipcloak'?

find . -mindepth 2 -type f -name '*' |
  perl -l000ne 'print $_;  s/\//-/g; s/^\.-/.\// and print' |
    xargs -0n2 mv 

Примечание: это не будет работать на имя файла, которые содержат \n.
Это, конечно, только перемещает тип f файлы...
Единственные столкновения имени были бы из файлов, существующих ранее в pwd

Протестированный с этим основным подмножеством

rm -fr junk
rm -f  junk*hello*

mkdir -p  junk/junkier/junkiest
touch    'hello    hello'
touch    'junk/hello    hello'
touch    'junk/junkier/hello    hello'
touch    'junk/junkier/junkiest/hello    hello'

Получающийся в

./hello    hello
./junk-hello    hello
./junk-junkier-hello    hello
./junk-junkier-junkiest-hello    hello
2
26.11.2013, 08:30
3 ответа

Решение, кажется, для ожидания некоторого времени перед действиями! У меня нет абсолютно никакой идеи, почему это (комментарии, объяснения и приветствующееся понимание), но следующие работы сценария теперь для меня:

#!/bin/bash
MYPWD="mypassword"

expect -c ' 
    spawn zipcloak test.upd
    expect "*Enter password*" 
    sleep 1
    send  "'"$MYPWD"'\r"
    sleep 1
    expect "*Verify password*" 
    sleep 1
    send  "'"$MYPWD"'\r"
    sleep 1
    '
1
27.01.2020, 22:22
  • 1
    Сделайте Вам нужны два sleeps после sends? –  ctrl-alt-delor 26.11.2013, 11:27
  • 2
    Да, мне нужно к два sleeps после двух send. Иначе zipfile не шифруется. –  Alex 26.11.2013, 11:51

Первый пример в вопросе работал на меня.

!/bin/bash
MYPWD="mypassword"

expect -c '
     spawn zipcloak test.upd
     expect {
        "*Enter password*" { send "'"$MYPWD"'\r"
                               exp_continue
                              }
        "*Verify password*" { send "'"$MYPWD"'\r"
                                  exp_continue
                                }
}'

Хотя второе не сделало. Попробуйте его снова, возможно, Вы где, запустив неправильный скрипт. Это часто происходит со мной: Интересно, почему это не работает, но я запускаю неправильный скрипт.

0
27.01.2020, 22:22
  • 1
    Нет, этот сценарий НЕ работает на меня. Заархивированные файлы НЕ шифруются после процедуры. Возможно, существует различие в версии zipcloak или expect, или некоторые библиотеки отличаются? Я имею дважды - и трижды проверенный для запущения скрипта ТОЧНО, как это! Кроме того, каждый раз файл как ziSvbYhy создается в каталоге (различные имена). –  Alex 26.11.2013, 08:24
  • 2
    Сделал Вы пытаетесь работать zipcloak вручную? –  ctrl-alt-delor 26.11.2013, 11:25
  • 3
    Да, курса я использовал zipcloak вручную; также, чтобы видеть, как использовать его. –  Alex 26.11.2013, 11:51

Моя интерпретация заключается в том, что ответы от Alex и ctrl -alt -delor не ожидают должным образом завершения процесса zipcloak и, следовательно, склонны оставлять zip-файл незашифрованным (и оставлять временный файл с именем, например zimfwtpJпозади ). Таким образом, их код работает для небольших zip-файлов, но не работает для больших.

Вот мое решение:

#!/bin/bash
MYPWD="mypassword"

expect -c '
    set timeout -1
    spawn zipcloak test.upd
    expect "*Enter password*"
    send  "'"$MYPWD"'\r"
    expect "*Verify password*"
    send  "'"$MYPWD"'\r"
    expect eof
    '
1
28.04.2021, 07:42

Теги

Похожие вопросы