답변:
를 기반으로 두 개의 디렉토리 나 파일이 동일한 파일 시스템에 속해 있는지 확인하는 방법 ( https://unix.stackexchange.com/ ) :
Linux의 쉘 스크립트에서 stat 로 수행 할 수 있습니다 .
stat -c "%d" /path # returns the decimal device number
그래서 당신은 할 수 있습니다 :
file1=$(stat -c "%d" /path/file1)
file2=$(stat -c "%d" /path/file2)
그런 다음 비교하십시오.
다음과 같이 쓸 수도 있습니다 :
if [ $(stat -c "%d" /path/file1) -eq $(stat -c "%d" /path/file1) ]
then
# mv sentence
fi
다른 옵션. 또한 Stackexchange 질문 에서 가져 왔습니다 .
if [[ $(df -P /path/file1 | tail -1) = $(df -P /path/file2 | tail -1) ]]
then
# echo "same filesystem"
# mv sentence
fi
$(...)
대신을 사용하십시오 `...`
. 후자는 전자를 위해 사용되지 않습니다.
stat
따르면 적어도 SunOS에서는 때때로 까다 롭습니다. 그러나 리눅스이기 때문에 호환되기를 바랍니다. 내 우분투 12에서는 괜찮습니다.
%d
(같은 파티션도) 당신과 함께하려고 다른 DIRS에 대해 다른 값을 출력 /
하고/tmp