와일드카드를 사용하여 파일을 선택할 때 gpg 명령에서 파일 이름의 일부를 유지하는 방법은 무엇입니까?
파일 이름은 매일/매월 변경되지만 정적으로 유지하려면 명령이 필요합니다.
암호화 전:
FILENAME.1234
FILENAME.9876
암호화 후:
FILENAME.1234.pgp
FILENAME.9876.pgp
지금까지의 명령:
gpg --batch --passphrase-fd 0 --output /usr/tmp/FILENAME*.pgp --encrypt -r "Some Quoted Text" --sign -u UserName /usr/tmp/FILENAME*
명령줄에서 이 작업을 수행할 수 있습니까, 아니면 for 루프가 필요합니까?
답변1
gpg
여러 파일 이름은 허용되지 않습니다 --output
. 이는 쉘 fileglob이 확장하는 것입니다. 따라서 xargs
각 파일에 대해 명령을 한 번씩 "루프"하거나 실행해야 합니다 .
저는 공백으로부터 안전한 파일 이름 작업을 작성하는 데 익숙하기 때문에 널 구분 기호( / )와 함께 find
AND를 사용하겠습니다.xargs
-print0
-0
find /usr/tmp -iname 'FILENAME.*' -print0 | xargs -0 -I % \
gpg --batch \
--passphrase-fd 0 --output %.pgp --encrypt \
-r "Some Quoted Text" --sign -u UserName \
%
전체 공개: 아직 테스트하지 않았습니다. 테스트를 위해 gpg를 설정하는 부담이 너무 높지만 거의 완료되어야 합니다.