我的目录中有 4 个文件,mv 命令不会移动所有文件并添加 .pgp 扩展名。
我希望将其保留在命令行上而不是创建脚本。也许我在这里/谷歌问的问题是错误的。
4 个文件位于/test/
-test-1 test-2 test-3 test-4
我已经尝试过了mv /test/test* /test/dir/*.pgp
,但它不起作用,因为 *.pgp 不是目录。
是用循环来做到这一点的唯一方法吗?另外,它必须是一个for循环吗?我对 shell 脚本很陌生,不太有信心......
答案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