ssh 経由のリモート実行ではリンクがたどりません?

ssh 経由のリモート実行ではリンクがたどりません?

ssh server ls /var/lib/edumate/backup/weekly/*DBB*1つのファイルを返す

/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。 を実行した時点では、クライアント マシンのそのディレクトリには 1 つのファイルしか含まれていませんでした。しかし、現在は期待どおりのファイルがすべて含まれています。

ワイルドカードのマッチングは、サーバーではなくクライアント マシンで行われます。その時点では、おそらく 1 つのファイルしかありませんでした。したがって、サーバーがコマンドから受け取ったのは次のようになります。

ls /var/lib/edumate/backup/weekly/DBB.0.db2inst1.NODE0000.CATN0000.20120610020013.001

今後これを防ぐには、次のように引用符を付けてコマンドを実行します。

ssh server ls "/var/lib/edumate/backup/weekly/*DBB*"

ワイルドカードは、クライアント マシン上のシェルによって展開されるのではなく、サーバーに渡されます。

関連情報