にこのメッセージを受け取ったらどういう意味ですかscp
?
scp: /dev/fd/3/fd/3/fd/3/fd/3/fd/3/fd/3/fd/3/fd/3/fd/3/fd/3/fd/3/fd/3/fd/5/31/rd/c6d16: No such device or address
私がしていることは
scp -r [email protected]:/* .
答え1
リモート側で再帰を実行するプロセスはスーパーユーザーとして実行されており、再帰/dev/fd
の一部として読み取られるディレクトリに対して複数のオープンファイル記述子があります。巡回すると、サブディレクトリのように見えるため、/dev/fd
再度繰り返されます。
開いているファイル記述子がどのディレクトリに開いているかを確認することもできます。
- ファイル記述子#3が開いています。
/
- ファイル記述子#5が開いています。
/dev/fd
- ファイル記述子#31が開いています。
/dev
/dev/rd/c6d16
オープンとコピーの試みが物理デバイスに対応しないポイントまで、長くバイパスされたパスをとりました。
/dev
コマンド、特にスーパーユーザー権限で実行されるコマンドは、素直に、、、、などのすべての/device
ファイルを開いてコピーしようとしますので、常に注意してください。これらの慣行は、交換員が検出されるまで公開通話をブロックするテープ装置(時々自動巻き戻し/自動固定機能を含む)と端末装置の時代から賢明ではありませんでした。 /proc
/sys
/dev
あなたが本物コピーするには/dev
おそらくあなたはしません最新のオペレーティングシステムでは、その内容が実行時に動的に決定されることを考慮すると、ファイルを素早く開いて読み取るのではなく、単一のコマンドを使用して特別なデバイスファイル、FIFO、ソケット、およびシンボリックリンク自体をコピーできます。通常のファイルとして。 (または特別なデバイスであることを確認して、デバイスファイルでエラーが発生し、エラーが発生しますopen()
。)fstat()
open()