有人能告诉我如何重命名 sftp 文件夹内的所有文件扩展名吗?
例如,我在 sftp 中有一个文件夹“Test”,这个文件夹里面有几个文件,例如,,test1.tmp
.....test2.tmp
我想将所有扩展名为“tmp”的文件重命名为 .csv。所以重命名后的结果应该是这样的。test1.csv
,test2.csv
...... 但在 sftp 中并不是所有的 bash 命令都可以执行。
我已经尝试过了
find . -name "*.tmp" -exec rename 's/\.tmp$/.csv/' '{}' \;
但它说命令无效,似乎该命令在 sftp 中不起作用。
答案1
有一个rename
SFTP 命令也是。如果您使用的是 Windows 和 WinSCP,那么您很幸运,可以使用通配符并简单地运行rename *.tmp *.csv
。
c:\WinSCP>WinSCP.com
winscp> open sftp://[email protected]:22/ -privatekey=bcs78.key.ppk
Searching for host...
Connecting to host...
Authenticating...
Using username "bcs78".
Authenticating with public key "bcs78@laptop".
Authenticated.
Starting the session...
Session started.
Active session: [1] [email protected]
winscp> ls
-rw-rw-r-- 1 bcs78 bcs78 2 Aug 30 12:23:34 2018 03.tmp
drwxr-xr-x 14 bcs78 bcs78 4096 Aug 30 12:21:49 2018 ..
-rw-rw-r-- 1 bcs78 bcs78 2 Aug 30 12:23:11 2018 01.tmp
drwxrwxr-x 2 bcs78 bcs78 4096 Aug 30 12:23:34 2018 .
-rw-rw-r-- 1 bcs78 bcs78 2 Aug 30 12:23:23 2018 02.tmp
winscp> rename *.tmp *.csv
03.tmp
01.tmp
02.tmp
winscp> ls
-rw-rw-r-- 1 bcs78 bcs78 2 Aug 30 12:23:23 2018 02.csv
drwxr-xr-x 14 bcs78 bcs78 4096 Aug 30 12:21:49 2018 ..
-rw-rw-r-- 1 bcs78 bcs78 2 Aug 30 12:23:34 2018 03.csv
drwxrwxr-x 2 bcs78 bcs78 4096 Aug 30 12:23:54 2018 .
-rw-rw-r-- 1 bcs78 bcs78 2 Aug 30 12:23:11 2018 01.csv
winscp>
在 Linux 中,您可能需要编写脚本,因为 Openssh 或 Putty 实现不支持通配符。