So schleifen Sie Dateien in einem Ordner und benennen die Erweiterung in SFTP um

So schleifen Sie Dateien in einem Ordner und benennen die Erweiterung in SFTP um

Kann mir jemand zeigen, wie ich alle Dateierweiterungen im Ordner in SFTP umbenennen kann?

Beispiel: Ich habe den Ordner „Test“ in SFTP und in diesem Ordner befinden sich einige Dateien wie test1.tmptest2.tmpund ich möchte alle Dateien mit der Erweiterung „tmp“ in .csv umbenennen. Das Ergebnis nach der Umbenennung sollte also so aussehen: test1.csvtest2.csvAber in SFTP können nicht alle Bash-Befehle ausgeführt werden.

Ich habe es schon so versucht

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

aber es heißt „Ungültiger Befehl“, anscheinend funktioniert der Befehl in SFTP nicht.

Antwort1

Da ist einrename SFTP-Befehlauch. Wenn Sie Windows und WinSCP verwenden, haben Sie das Glück, Platzhalter zu verwenden und einfach auszuführen 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>

Unter Linux müssen Sie dies wahrscheinlich per Skript ausführen, da die Openssh- oder Putty-Implementierung keine Platzhalter unterstützt.

verwandte Informationen