Linux 명령줄 확장, 값 재사용

Linux 명령줄 확장, 값 재사용

여러 파일을 tftp로 전송하려고 합니다.

tftp -m binary 192.168.1.2 -c put file1 target/file1

나는 다음과 같은 cmd 라인 확장을 사용하려고 노력해 왔습니다.

tftp -m binary 192.168.1.2 -c put `ls *` target/`ls *`

하지만 이것은 작동하지 않는 것 같습니다. ":"가 대상 뒤에 삽입됩니다.

이런 종류의 항목을 확장하는 빠른 방법이 있습니까?

첫 번째 확장팩에서 얻은 가치를 다음 확장팩에 재사용하고 싶습니다.

답변1

우선은 `ls *`,잘못된.*다음과 같이 just 를 사용하여 동일한 의도한 결과를 얻을 수 있습니다 .

tftp -m binary 192.168.1.2 -c put * target/

와일드카드 확장은 다음에 의해 처리됩니다.너의 껍질*명령을 실행하기 전에 파일 목록을 확장하는 올바른 방법 은 다음과 같습니다.간단히 사용*, 절대 `ls`.


둘째,TFTP put명령은 여러 파일을 업로드할 수 있지만 수락만 가능합니다.단일 대상 디렉토리그렇게 할 때. 여러 대상을 지정할 필요가 없으며 어쨌든 작동하지 않습니다. tftp소스 파일이 끝나고 대상 파일이 시작되는 위치를 알 수 없습니다. (앞서 말했듯이 와일드카드는 쉘에 의해 확장 tftp되므로 put file1 file2 file3,~ 아니다 put *.)


미스터리는 하위 디렉토리의 내용을 나열 :함으로써 발생합니다 . ls을 실행하면 ls *셸이 실제로 실행됩니다 ls file1 file2 dir1(두 개의 파일과 하나의 디렉터리가 있다고 가정해 보겠습니다). 그런 다음 ls" file1", " file2", 그 뒤에 " dir1: (...all files in dir1...)"를 인쇄합니다.

관련 정보