stat를 호출하기 위해 env를 사용하는 것이 권장되는 이유는 무엇입니까?

stat를 호출하기 위해 env를 사용하는 것이 권장되는 이유는 무엇입니까?

~에서coreutils 매뉴얼, stat명령 정보

셸 별칭과 내장 함수가 있기 때문에 원시 함수를 대화식으로 사용하거나 스크립트에서 사용하면 stat여기에 설명된 것과 다른 기능이 나타날 수 있습니다. (즉) stat쉘의 간섭을 피하기 위해 호출합니다.envenv stat ...

  1. "쉘 별칭 및 내장 stat함수"란 무엇을 의미합니까? Bash에서는 다음과 같은 별칭이나 내장 함수 또는 함수를 찾을 수 없습니다.stat

    $ whereis stat
    stat: /usr/bin/stat /usr/bin/X11/stat /usr/share/man/man1/stat.1.gz /usr/share/man/man2/stat.2.gz
    $ help stat
    bash: help: no help topics match `stat'.  Try `help help' or `man -k stat' or `info stat'.
    
  2. env" (즉, ) 을 통해 호출 env stat ..." "쉘 간섭을 방지"할 수 있는 이유는 무엇입니까?

    다음 명령은 env별칭, 내장 명령 또는 함수가 될 수 없습니까?

    명령 앞에 배치하여 env명령이 외부 실행 파일임을 지정할 수 있습니까 ?

답변1

  1. Bash에는 stat내장되어 있지 않을 수도 있지만 다른 쉘에는 있을 수 있습니다. 실제로 쉘은 원하는 모든 유틸리티의 내장 버전을 제공할 수 있으며 사용자는 stat자신의 쉘 기능을 사용하거나 다른 바이너리의 별칭을 호출하여 이를 재정의할 수 있습니다.

  2. 캔트. 실행 중인 유틸리티는 env내장될 수 없습니다( cd예를 들어 시도해 보세요). 별칭 및 셸 기능도 허용되지 않습니다.

매뉴얼은 단순히 사용자가 설명된 기능을 얻을 수 있도록 시도합니다. 정말로 편집증을 일으키고 싶다면 이상적으로 stat는 절대 경로를 사용하여 전화를 걸어야 한다고 언급해야 할 것 같습니다 . 이는 GNU coreutils가 선택적 추가 항목인 비 Linux 시스템에서 더 의미가 있습니다(일반적으로 /usr/local/gnu/bin, 또는 이와 유사한 접두사를 사용 하여 설치 g됩니다 ).gstatglsgmv

관련 정보