我目前正在编写一个Powershell脚本,该脚本检索SFTP服务器上目录中所有文件的时间戳,并将其写入文件。我正在使用cygwin附带的sftp
实用程序连接到服务器。
我遇到的问题是ls
命令没有在时间戳中显示年份。这是输出的一个例子:
sftp> ls -lt
-rw-r--r-- 1 9665 9665 358 Mar 13 10:05 file.txt
-rw-r--r-- 1 9665 9665 217 Mar 13 10:00 file2.txt
我似乎无法访问强制ls
显示常规ls
命令年份的任何标志。以下是我通过此选项获得的选项:
ls [-1aflnrSt] [path] Display remote directory listing
我也尝试过使用psftp
,它提供的格式与年份相同。
我的问题是如何确保日期显示年份?这将是理想的解决方案。但如果无法显示,是否可以安全地假设该文件来自当前年份,并且前几年的任何文件都会明确指定年份?这是ls
优于sftp的默认行为吗?
答案 0 :(得分:1)
方法: I.您可以将日期解析为字符串,然后尝试连续查找4个数字。还添加对containig“ 19”,“ 20”或$ targetYear的检查。
II。您也可以使用“ ls -l --full-time”命令显示年份。
III。最后,在我的实践中,我使用了远程Linux服务器中的文件:
卸载目录“ Remove-PSDrive -Name $ diskLiteral -Force -PSProvider FileSystem”。
第二步,您可以根据需要添加任何排序,选择有关文件和Format-Table的任何信息(如果需要数据表示形式的表格)。