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 扩展。