簡體   English   中英

使用 ls 從 SFTP 服務器獲取文件的時間戳

[英]Getting the timestamp of a file from a SFTP server using ls

我目前正在編寫一個 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 的默認行為嗎?

這樣做的方法: I. 您可以解析字符串中的日期並嘗試連續查找 4 個數字。 還要添加對包含“19”、“20”或 $targetYear 的檢查。

二、 您也可以使用“ls -l --full-time”命令顯示年份。

三、 最后,在我使用的遠程 Linux 服務器中處理文件的實踐中:

  1. 將遠程目錄掛載為磁盤“New-PSDrive -name $diskLiteral -psprovider FileSystem -Root $outsightFolder -Credential $cred”
  2. 獲取目錄“Get-ChildItem ($diskLiteral + $subfolder) -Force | Where-Object $_.CreationTime -ge $targetDate”中的文件排序列表
  3. 卸載目錄“Remove-PSDrive -Name $diskLiteral -Force -PSProvider FileSystem”。

    第二步,您可以根據需要添加任何排序,選擇有關文件和格式表的任何信息(如果它是數據表示的必要表格形式)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM