回答:
2つのディレクトリまたはファイルが同じファイルシステムに属しているかどうかを確認する方法に基づく(/unix//):
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では、それは時々トリッキーです。しかし、Linuxであるため、互換性があることを願っています。私のUbuntu 12では問題ありません。
%d
(同じパーティションも)あなたと試みる異なるのdirsに異なる値を出力/
し、/tmp