Назад | Перейти на главную страницу

как зациклить файлы в папке и переименовать расширение в sftp

Может ли кто-нибудь показать мне, как переименовать все расширения файлов внутри папки в sftp?

Например, у меня есть папка "Test" в sftp, и внутри этой папки есть несколько файлов, например, test1.tmp, test2.tmp..... и я хочу переименовать все файлы с расширением tmp в .csv. так что результат после переименования должен быть таким. test1.csv, test2.csv ...... Но в sftp не все команды bash, которые могут выполняться.

Я уже пробовал это

find . -name "*.tmp" -exec rename 's/\.tmp$/.csv/' '{}' \;

но он говорит Invalid Command, кажется, что команда не работает в sftp.

Eсть rename Команда SFTP слишком. Если вы используете Windows и WinSCP, то вам посчастливилось использовать подстановочные знаки и просто запустить rename *.tmp *.csv.

c:\WinSCP>WinSCP.com
winscp> open sftp://bcs78@example.com: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] bcs78@example.com
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 не поддерживает подстановочные знаки.