たくさんのファイルをTFTPで転送しようとしています
tftp -m binary 192.168.1.2 -c put file1 target/file1
私は次のようなコマンドライン拡張を使用しようとしています
tftp -m binary 192.168.1.2 -c put `ls *` target/`ls *`
しかし、これは機能していないようで、ターゲットの後に「:」が挿入されます。
この種のものを拡張する簡単な方法はありますか?
最初の拡張で得た値を次の拡張に再利用したい
答え1
まず第一に`ls *`
、間違っている。*
次のようにだけを使用しても、同じ結果を得ることができます。
tftp -m binary 192.168.1.2 -c put * target/
ワイルドカード拡張は、あなたの殻コマンドを実行する前に、*
ファイルのリストを展開する正しい方法は単に使用する*
、 一度もない`ls`
。
第二に、FTPサーバ put
コマンドは複数のファイルをアップロードできますが、単一の宛先ディレクトリ複数のターゲットを指定する必要はありませんが、ソースファイルがどこで終了し、ターゲットファイルがどこから始まるのかがわからないため、いずれにしても機能しません。tftp
(前述のように、ワイルドカードはシェルによって展開されるため、tftp
put file1 file2 file3
ない put *
。
この不思議な現象は、サブディレクトリの内容をリストする:
ことによって発生します。 を実行すると、シェルが実際に実行されます(2 つのファイルと 1 つのディレクトリがあると仮定します)。次に、" "、" "、" " が出力されます。ls
ls *
ls file1 file2 dir1
ls
file1
file2
dir1: (...all files in dir1...)