잘못된 명령

잘못된 명령

이 예가 있습니다

cp `which mv` rename

내 과제에 대한 지침은 명령이 사양을 따르지 않으며 명령을 정확히 동일한 작업을 수행하는 다른 예로 대체하라는 것입니다.

내 질문은 명령이 사양을 따르지 않는다는 것이 무엇을 의미합니까?

답변1

이 "표준"이 무엇을 의미하는지 모르겠지만 명령 자체가 약간 이상합니다. /bin/mv를 '이름 바꾸기'로 복사하는 이유는 무엇입니까? 똑같은 작업을 수행하는 명령은 다음과 같습니다.

cp /bin/mv rename

당신이 모르는 경우. ` 내부의 모든 것이 확장됩니다.

`which mv`

생성합니다(일부 시스템에서는 출력이 다를 수 있음).

/bin/mv

다시 말해서. ` 내의 모든 것이 먼저 호출된 다음 결과가 최종 명령으로 대체됩니다.

예를 들어, 원하는 명령이 될 수 있습니다. 날짜 및 터치 명령에 익숙하실 것 같습니다. 현재 타임스탬프와 동일한 이름을 가진 파일을 생성한다고 가정해 보겠습니다. 현재 타임스탬프를 가져오는 명령은 날짜 +%s입니다. 이 예를 살펴보십시오.

touch `date +%s`

동일하지만 내부 명령이 다릅니다. 먼저 "date +%s"를 호출하면 결과는 1460885688입니다(귀하의 결과는 다를 수 있음). 이후 호출되는 명령은 다음과 같습니다.

touch 1460885688

답변2

명령 mv이 현재 PATH.

나는 다음을 추천합니다:

f=$(which mv) && cp $f rename

관련 정보