Linux コマンドライン拡張、値の再利用

Linux コマンドライン拡張、値の再利用

たくさんのファイルを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(前述のように、ワイルドカードはシェルによって展開されるため、tftpput file1 file2 file3ない put *


この不思議な現象は、サブディレクトリの内容をリストする:ことによって発生します。 を実行すると、シェルが実際に実行されます(2 つのファイルと 1 つのディレクトリがあると仮定します)。次に、" "、" "、" " が出力されます。lsls *ls file1 file2 dir1lsfile1file2dir1: (...all files in dir1...)

関連情報