使用嵌入式空间加密文件

时间:2018-12-26 16:02:35

标签: shell

我在目录中有以下文件,并运行以下命令:

gpg-是--encrypt-files -r MyPublicKey $(ls -1A | egrep -v'.dat')

myfile1.dat myfile1.txt myfile2.dat myfile2.txt myfile3.dat myfile3.txt myfile4.dat myfile4.txt   。我的档案。文本文件 .myfile.txt

gpg命令的\。\ my \ file。\ txt \文件有问题 反斜杠代表空格。

如果我按照以下步骤重做命令,则带有嵌入式空格的\。\ my \ file。\ txt \文件将被加密。

gpg-是--encrypt-files -r MyPublicKey *

任何想法如何使命令gpg --yes --encrypt-files -r MyPublicKey $(ls -1A | egrep -v'.dat')起作用并使用嵌入式空格对文件加密?

gpg-是--encrypt-files -r MyPublicKey $(ls -1A | egrep -v'.dat')

myfile1.dat myfile1.txt myfile2.dat myfile2.txt myfile3.dat myfile3.txt myfile4.dat myfile4.txt   。我的档案。文本文件 .myfile.txt

3 个答案:

答案 0 :(得分:0)

如果您使用的是Bash,则可以改用extglob轻松安全地获取所有与模式不匹配的文件名:

#!/bin/bash
shopt -s extglob
gpg --yes --encrypt-files -r MyPublicKey !(*.dat)

否则,您可以使用find

#!/bin/sh
find . -maxdepth 1 -mindepth 1 ! -name '*.dat' \
    -exec gpg --yes --encrypt-files -r MyPublicKey {} +

答案 1 :(得分:0)

您可以尝试

gpg --yes --encrypt-files -r MyPublicKey "$( ls -1A | egrep -v '.dat')"

(请参见替换处添加的引号)。

答案 2 :(得分:0)

我尝试过,它对我有用,但是会尝试您的建议。

ls -1A | egrep -v'.dat $'| egrep -v'.gpg $'|而IFS =读取-r行;做gpg --yes --encrypt -r MyPublicKey“ $ line”;完成