ssh server ls /var/lib/edumate/backup/weekly/*DBB*
回傳一個文件
/var/lib/edumate/backup/weekly/DBB.0.db2inst1.NODE0000.CATN0000.20120610020013.001
但ssh server ls /data/backup/weekly/*DBB*
返回掛載連結目錄中的內容
/data/backup/weekly/DBB.0.db2inst1.NODE0000.CATN0000.20120513020022.001
/data/backup/weekly/DBB.0.db2inst1.NODE0000.CATN0000.20120520020018.001
/data/backup/weekly/DBB.0.db2inst1.NODE0000.CATN0000.20120527020019.001
/data/backup/weekly/DBB.0.db2inst1.NODE0000.CATN0000.20120603020028.001
/data/backup/weekly/DBB.0.db2inst1.NODE0000.CATN0000.20120610020013.001
/data/backup/weekly/DBB.0.db2inst1.NODE0000.CATN0000.20120710120854.001
/data
位於另一個分區的哪個位置
/dev/sdb2 on /data type ext3 (rw,acl,user_xattr)
備份是一個符號鏈接/data/backup
lrwxrwxrwx 1 root root 12 Jul 10 14:27 backup -> /data/backup/
當然,我正在尋找已安裝/連結目錄中的文件列表。有什麼辦法嗎我如何/var/lib/edumate/backup
使用ls
而不是連結的那個?會scp
表現得一樣嗎?
答案1
我最好的猜測是,在您運行的客戶端電腦上ssh
,您還有一個名為 的目錄/var/lib/edumate/backup/weekly
。當您執行它時,客戶端電腦上的該目錄僅包含一個檔案。但現在它包含了您期望的所有文件。
發生的情況是通配符匹配發生在客戶端電腦上而不是伺服器上。當時,那裡可能只有一個文件。因此,伺服器從您的命令中收到的內容是:
ls /var/lib/edumate/backup/weekly/DBB.0.db2inst1.NODE0000.CATN0000.20120610020013.001
為了防止將來發生這種情況,請執行帶有引號的命令,例如:
ssh server ls "/var/lib/edumate/backup/weekly/*DBB*"
然後,通配符將傳遞到伺服器,而不是由客戶端電腦上的 shell 擴展。