我有两个文件夹,A 和 B。在文件夹 A 中,我有一个数据文件。在文件夹 B 中,我有程序文件。我想让B文件夹中的程序对A文件夹中的文件进行操作,从B文件夹运行。
我能想到的唯一方法是将文件从 A 移动到 B,在文件上运行文件夹 B 中的命令,然后将输出文件从 B 移回 A。无论如何我可以将文件保留在文件夹 A 中并从 B 运行程序?
这是我现在的脚本。它非常困惑,我认为应该有一种更简洁的方法来做到这一点。
echo "Signing with test keys....";
mv *.apk $HOME/signapk/files/not_signed.apk;
cd $HOME/signapk/files;
java -jar signapk.jar testkey.x509.pem testkey.pk8 not_signed.apk signed_apk.apk;
mv not_signed.apk $HOME/signapk/original.apk;
mv signed_apk.apk $HOME/signapk/test_signed.apk;;
2) echo "Signing with private keys....";
mv *.apk $HOME/signapk/files/not_signed.apk;
cd $HOME/signapk/files;
java -jar signapk.jar certificate.pem key.pk8 not_signed.apk signed_apk.apk;
mv not_signed.apk $HOME/signapk/original.apk;
mv signed_apk.apk /$HOME/signapk/private_signed.apk;;
3) echo "Press enter to contintue with zipaligning";
read ;
mv *.apk $HOME/signapk/files/zipalign.apk;
cd $HOME/signapk/files;
./zipalign -v -f 4 zipalign.apk zipaligned.apk;
mv zipaligned.apk $HOME/signapk/zipaligned;
mv zipalign.apk $HOME/signapk/original.apk;;
最佳答案
您是否考虑过使用 symbolic links - 从你的临时目录 B 到你的另一个目录 A- 使用 ln -s命令?
所以你可以先创建一个新的空目录
mydir=$(mktemp -d)
要求你的 shell 在退出时清理它
trap "rm -rf $mydir" EXIT
然后你可以用符号链接(symbolic link)填充它
ln -s *.apk $mydir
最后在那里运行你的程序
cd $mydir
yourprog *.apk
等请随意根据您的需要进行调整。
关于linux - 我的 shell 脚本如何对不同文件夹中的文件进行操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8466168/