가상 머신에서 파일을 다운로드하는 스크립트를 실행하려고 하는데 수신되는 가상 머신을 지정할 수 없습니다. 그러나 나는 들어오는 가상 머신의 상태에 관계없이 다운로드가 성공하고 그것이 unix/linux 시스템이라는 것을 알고 싶습니다.
제 질문은 모든 UNIX/Linux 시스템에 존재하는 것으로 보장되는 다운로드에 사용할 수 있는 특정 파일이 있습니까?입니다.
감사해요!
답변1
거의 유일한 것보장하다존재하는 것은 루트 디렉터리 자체입니다. 하나 있다많은표준은거의 보편적잠깐만 요 . 하지만 지루한 시스템 엔지니어가 , , 등 /etc
의 Linux 버전을 출시하는 것은 전적으로 가능합니다 . 그러한 시스템에서는 무엇이든 가능합니다./andsoforth
/bin
/cupboard
/usr
/luser
답변2
답변3
POSIXly, 약속된 유일한 것은("적합성 시스템에 존재해야 함")은 /
, /dev
, /tmp
및 /dev/null
이지만 모두 쓰기 가능하거나 읽을 수 있는 것은 아닙니다 /dev/tty
./dev/console
파일을 복사하는 데 무엇을 사용하는지에 따라 이 모든 것이 실제로 도움이 되지 않거나 복사를 시도할 수 있습니다 /dev/null
. scp
복사하려고 하면 오류가 발생할 것 같지만 다음과 같은 것을 사용하면 됩니다. 단지 데이터를 읽고 특수 파일을 무시합니다. 예를 들어 cp /dev/null .
, 당신은 결국 길이가 0인 일반 파일을 성공적으로 복사하게 될 것입니다.
하지만 Copy it을 사용하여 장치 노드의 내용을 복사하려고 하면 아마도 허가 없이 로컬 시스템에 생성할 수 없을 것이며 장치 번호가 동일하다는 보장도 없을 것 같습니다. 시스템 간에 복제할 수 있으면 결과적으로 로컬 시스템에서 완전히 다른 것을 의미하는 장치 노드가 될 수 있습니다.
표준 유틸리티는 에 있어야 하므로 원격으로 해결할 수 있다면 또는 PATH
등 나열된 일부 디렉토리에서 찾을 수 있습니다 (심볼릭 링크일 수도 있음). 표준 호환 시스템에서도 이를 찾을 수 있어야 하지만 Linux에서는 외부 유틸리티로 거의 사용되지 않기 때문에 이를 갖지 않는 경향이 있습니다.sh
ls
cd
실제로는 많은 시스템에서 /bin/ls
또는 를 찾을 수 있습니다 /bin/sh
(여전히 심볼릭 링크일 수도 있음). 가장 심오하지는 않을 수도 있지만, 이러한 문제를 다루고 있다면 아마도 알게 될 것입니다.
답변4
내 경험에 따르면:
/dev/stdout
, 때로는 이것이 심볼릭 링크이기 때문에/dev/null
더 나을 수도 있지만 둘 다 일반 파일은 아닙니다./etc/hosts
아마도 네트워크로 연결된 모든 UNIX 시스템에/etc/resolv.conf
필요할 것입니다./bin/sh
그럴/bin/init
가능성이 높지만 일부 임베디드 Linux 시스템이나 Linux 기반 장치 및 NAS 상자에는 이들 중 하나가 다른 위치에 있거나/bin/busybox
파일이 아닌 심볼릭 링크(예: )가/etc/inittab
있을 수 있습니다 . 존재하고 일반 파일이어야 함/etc/issue
/etc/profile
누구나 쉘에 로그인할 수 있는 모든 곳에 존재하는 것으로 보입니다 .