我正在尝试通过 SSH 或 SFTP 重命名远程目录中的所有文件。重命名应将文件转换为日期扩展名,例如将 .txt 转换为 .txt.2016-05-25。
我有以下命令循环每个 .txt 文件并尝试重命名,但出现错误:
ssh $user@$server "for FILENAME in $srcFolder/*.txt; do mv $FILENAME $FILENAME.$DATE; done"
我得到的错误是:
mv: missing destination file operand after `.20160525_1336'
我也曾通过 SFTP 尝试过此操作,但没有这样的运气。任何帮助将不胜感激!
最佳答案
您需要转义(或单引号)远程 shell 中变量的 $
。还建议引用代表文件路径的变量:
ssh $user@$server "for FILENAME in '$srcFolder'/*.txt; do mv \"\$FILENAME\" \"\$FILENAME.$DATE\"; done"
关于bash - 如何通过 SSH 重命名所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37444322/