![Linux 명령줄 확장, 값 재사용](https://rvso.com/image/1303444/Linux%20%EB%AA%85%EB%A0%B9%EC%A4%84%20%ED%99%95%EC%9E%A5%2C%20%EA%B0%92%20%EC%9E%AC%EC%82%AC%EC%9A%A9.png)
여러 파일을 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...)
"를 인쇄합니다.