여러 명령의 출력을 동일한 파일에 저장

여러 명령의 출력을 동일한 파일에 저장

예를 들어 whoami 및 날짜. 나는 그걸 할 수있어

whoami>/home/user/folder/file
date>>/home/user/folder/file

하지만 경로를 두 번 입력하지 않고도 한 줄로 완료할 수 있다고 확신합니다. 나는 사용해 보았습니다.

|

그러나 첫 번째 명령은 항상 무시됩니다.

답변1

서브쉘 사용

(whoami; date) > ~user/directory/file

답변2

echo/printf 및 명령 대체를 사용하여 단일 리디렉션으로 이 작업을 수행할 수 있습니다.

printf '%s\n' "$(whoami)" "$(date)" > /home/user/folder/file

제 생각에는 이것은 좋은 해결책이 아니며 읽기/관리하기가 쉽지 않습니다. 특히 더 많은 명령이 추가되는 경우 더욱 그렇습니다.

경로를 여러 번 입력하지 않으려면 경로를 변수에 저장할 수 있습니다.

file=/home/user/folder/file
whoami>"$file"
date>>"$file"

그러나 이를 위해서는 여러 리디렉션이 필요합니다.

긴 스크립트나 명령 하위 집합을 작성하고 이에 대해 단일 리디렉션을 수행하려는 경우 명령 그룹화를 사용할 수 있습니다.

{
whoami
date
} > /home/user/folder/file

또는 한 줄로:

{whoami;date;} > /home/user/folder/file

관련 정보