sftp でフォルダー内のファイルをループして拡張子を変更する方法

sftp でフォルダー内のファイルをループして拡張子を変更する方法

sftp のフォルダー内のすべてのファイル拡張子を変更する方法を教えてもらえますか?

たとえば、sftp に「Test」というフォルダーがあり、このフォルダー内に、、..... などのファイルがいくつかあります。拡張子が「tmp」のすべてのファイルの名前を .csv に変更します。名前変更後の結果は次のようになります。、test1.tmp.....ただし、sftp ではすべての bash コマンドが実行できるわけではありません。test2.tmptest1.csvtest2.csv

私はすでにこのように試しました

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 の実装がワイルドカードをサポートしていないため、これをスクリプト化する必要がある可能性があります。

関連情報