Используйте шарик удара в ударе для цикла. Как это:
for filename in /*; do :; done; echo "$filename"
Это зависит от того, что удар делает расширение шарика, отсортированное в алфавитном порядке. Прочитайте руководство удара для получения дополнительной информации. Обратите внимание, что это зависит от LC_COLLATE. Это также зависит от того, что переменная filename
все еще содержит последнее значение после того, как цикл завершился.
Если Вы хотите имя файла с самой старой меткой времени, можно сделать это как это:
for filename in /*; do echo "$filename"; break; done
Вы можете использовать OpenSSL
для шифрования и расшифровки с использованием ключевых симметричных шифров. Например:
openssl enc -in foo.bar \
-aes-256-cbc \
-pass stdin > foo.bar.enc
Это шифрование foo.bar
- foo.bar.enc
(вы можете использовать коммутатор
, чтобы указать выходной файл, вместо Перенаправление STDOUT, как указано выше), используя 256 бит AES в режиме CBC . Существуют различные другие доступные шигии (см. MAN ENT
). Затем команда будет дождаться, когда вы ввели пароль и используете это для создания соответствующей клавиши. Вы можете увидеть ключ с -P
или используйте свой собственный на месте пароля с -k
(на самом деле его немного сложнее, чем это, так как с анализа инициализации или необходим источник, см. MAN ENT
снова). Если вы используете пароль, вы можете использовать один и тот же пароль для расшифровки, вам не нужно смотреть или держать сгенерированный ключ.
Чтобы расшифровать это:
openssl enc -in foo.bar.enc \
-d -aes-256-cbc \
-pass stdin > foo.bar
обратите внимание на -D
. Смотрите также Человек OpenSSL
.
В одноразовых случаях вы можете зашифровать с помощью zip и пароля. Хотя это и не так надежно, как методы, основанные на ключах (потому что сложно иметь хороший пароль), это, вероятно, прекрасные специальные ситуации.
Командная строка выглядит так:
zip -r -0 -e encrypted_file.zip /path/to/files
-r to recurse directories.
-e to encrypt
Небольшие модификации ответа @goldilocks:
Шифрование
openssl enc -in foo -aes-256-cbc -pbkdf2 -out foo.enc
Отличия:
-pass stdin
, будет предложено «ввести aes -256 -пароль шифрования cbc :» и вы сможете ввести парольную фразу, не отображая ее в консоли; PBKDF2
с итерациями по умолчанию и скроет предупреждение «***ПРЕДУПРЕЖДЕНИЕ :используется устаревшая деривация ключа. Лучше использовать -iter или -pbkdf2». Расшифровка
openssl enc -d -in foo.enc -aes-256-cbc -pbkdf2 -out foo.plain