Ls

Mac unix 備份目錄不能從命令行列出

  • April 11, 2018

發布這個來學習,我知道這違反了 UNIX 最佳實踐,甚至違反了正常的常識,但我想這就是 Macintosh 電腦有時會做的事情。我有一個備份驅動器,其備份目錄如下所示:

>$ tmutil listbackups
/Volumes/My Backup Dr/Backups.backupdb/User’s MacBook Pro/2018-01-18-143624
/Volumes/My Backup Dr/Backups.backupdb/User’s MacBook Pro/2018-03-10-011602
/Volumes/My Backup Dr/Backups.backupdb/User’s MacBook Pro/2018-03-13-014248
/Volumes/My Backup Dr/Backups.backupdb/User’s MacBook Pro/2018-04-10-224116

從命令行,如果我嘗試使用ls列出其中之一的內容,我會因為'. 請注意,我嘗試了在其他文章中找到的有關複製和粘貼路徑的建議,以確保它使用相同的撇號、替換*.甚至嘗試\轉義它。但是我每次都會收到目錄未知錯誤。我還嘗試將整個路徑放在雙引號中,也將路徑中的文件夾放在雙引號中,撇號。仍然沒有運氣。

獲取上面給出的目錄列表的正確語法是什麼?如何在該命令變體中使用萬用字元ls來列出所有目錄中的內容2018-03*

最後一點:最好的解決方案可能是失去撇號,但這是由 Macintosh 在備份期間自動創建的。蘋果在想什麼?

更新:進一步混淆這個問題

  • sudo tmutil delete "/Volumes/My Backup Dr/Backups.backupdb/User’s MacBook Pro/2018-03-10-011602"作品
  • ls才不是

然而我可以驗證這條路徑是否存在,甚至可以通過 Mac“finder”使用者界面查看內容。

向發布雙引號的使用者道歉。進一步的測試表明這不是UNIX問題,但可能是Mac問題。不知何故,將整個路徑複製並粘貼到命令中並用雙引號括起來會產生看起來與原始路徑相同的東西,但我現在認為它一定是不同的。

如果我以塊的形式粘貼路徑並測試每個塊,建立與原始路徑匹配的路徑,那麼問題就消失了。回答這兩個問題的正確UNIX語法(列出文件夾並使用萬用字元,如問題範例中所示),答案如下所示:

  1. ls "Volumes/My Backup Dr/Backups.backupdb/User’s MacBook Pro/2018-03-10-011602"
  2. ls "Volumes/My Backup Dr/Backups.backupdb/User’s MacBook Pro/2018-03-"*

第二個範例將列出備份驅動器上 March 文件夾中的所有內容。請注意,*必須在雙引號目錄模式之外。

引用自:https://unix.stackexchange.com/questions/437064