여러 파일을 이동하고 .pgp 확장자를 추가하는 방법은 무엇입니까?

여러 파일을 이동하고 .pgp 확장자를 추가하는 방법은 무엇입니까?

내 디렉토리에 4개의 파일이 있는데 mv 명령은 모든 파일을 이동하지 않고 .pgp 확장자를 추가합니다.

스크립트를 작성하는 대신 명령줄에 유지하고 싶습니다. 아마도 제가 여기/Google에서 잘못된 질문을 하고 있는 것 같습니다.

4개의 파일은 다음 위치에 있습니다 /test/.test-1 test-2 test-3 test-4

이것을 시도했지만 mv /test/test* /test/dir/*.pgp*.pgp가 디렉토리가 아니기 때문에 작동하지 않습니다.

루프를 사용하여 이를 수행하는 유일한 방법입니까? 또한 for 루프여야 합니까? 저는 쉘 스크립팅을 처음 접했고 그다지 자신감이 없습니다 ...

답변1

먼저 파일 이름을 바꾼 다음 이동할 수 있습니다.

rename 's/(.*)/$1.pgp/' test*; mv test*.pgp /test/dir

답변2

유일한 방법은 아니지만 가장 좋고 쉬운 방법은 실제로 루프, 바람직하게는 for 루프입니다. 이를 수행하는 방법은 간단합니다.

cd /test    
for file in test*; do
    mv "$file" /test/dir/"$file".pgp
done

그게 다야.

답변3

예, 루프, for 루프를 사용해야 합니다.

간단한 두 단계만 거치면 됩니다:

set -- test-{1..4}
for f; do mv "$f" "dir/$f.pgp"; done

관련 정보