我正在使用 PuTTY 中的 pscp.exe 和 -ls 选项通过 STDOUT 将目录列表获取到 perl 脚本。
我得到的输出是这样的:
Listing directory /path/to/my/directory
drwxr-sr-x 2 234 11 4096 Feb 4 11:11 .
drwxrwxrwx 21 root root 4096 Jan 28 17:50 ..
-rw-r--r-- 1 root 11 415570 Jan 10 12:27 009800D2-10003ACC.log
-rw-r--r-- 1 root 11 131072 Dec 15 09:59 MCP.20101215_095929_644.snapshot.log
-rw-r--r-- 1 root 11 131072 Jan 19 13:32 MCP.20110119_133211_032.snapshot.log
-rw-r--r-- 1 root 11 10240105 Feb 2 22:32 MCP.20110202_173304_750.log
-rw-r--r-- 1 root 11 10240077 Feb 3 04:07 MCP.20110202_223257_159.log
-rw-r--r-- 1 root 11 10240094 Feb 3 06:29 MCP.20110203_040754_861.log
-rw-r--r-- 1 root 11 10240095 Feb 3 07:43 MCP.20110203_062936_730.log
-rw-r--r-- 1 root 11 10240066 Feb 3 10:20 MCP.20110203_074353_058.log
但是,日期/时间的格式很难处理。理想情况下,我希望它不是2011-02-04 10:02:33
“Feb 4 10:02”。主要问题是没有年份或秒数。
有没有办法指定日期/时间格式?
答案1
为什么不直接使用 plink.exe 来远程执行“ls”命令?
有许多 ls 命令行开关可以根据您的需要格式化输出。此外,您还可以远程将其输出导入 awk、sed 等。
plink.exe user@remotehost "ls -l --full-time /my/remote/directory
答案2
我无法评论,使用 plink 是可行的方法,我只是建议使用--time-style="+%Y-%m-%d %H:%M:%S"
而不是--full-time
,它可以让你摆脱几秒钟后显示的不需要的东西