Shell glob - 파일 경로 arg를 파일 내용으로 교체

Shell glob - 파일 경로 arg를 파일 내용으로 교체

curl명령 에는 --data옵션 값 앞에 기호가 붙을 때 파일 내용을 바꾸는 옵션이 있습니다. @예를 들어 다음과 같습니다.

curl -X POST --data @abc.json hostaddr.com

abc.json파일 내용은 게시물 요청 본문으로 전송됩니다. 이 옵션은 게시물 본문이 길거나 여러 줄인 경우에 편리합니다.

Linux 셸 또는 Linux 셸에서 zshell이 작업을 어떻게 수행합니까? 다음 문자열을 파일 경로로 처리하고 해당 문자열을 파일 내용으로 바꾸는 glob pattern/ 가 있습니까 ?prefix operator

답변1

대부분의 경우 이는 다음과 같습니다.리디렉션 연산자( <):

$ tr 'a' 'b' /path/to/file  ## fails because `tr` works on streams
tr: extra operand ‘file’
Try 'tr --help' for more information.
$ tr 'a' 'b' < /path/to/file ## works because the file's contents are passed to tr

명령 대체 및 리디렉션 연산자는 모두 POSIX에 의해 정의되며(위의 명령 대체 링크 참조) 거의 모든 쉘에서 사용할 수 있습니다. 또 다른 관련 도구는명령 대체. 작성하는 방법에는 두 가지가 있습니다 . 명령을 백틱( )으로 묶 `command`거나 Order라고 작성할 수 있습니다$(command)

따라서 파일의 내용을 사용하려면 다음과 같이 작성할 수 있습니다.

command $(cat /path/to/file)

또는

command `cat /path/to/file`

관련 정보