我在目录中有以下文件,并运行以下命令:
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
答案 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”;完成