Bash
如何檢查目錄是否安裝在磁碟 X 上,如果沒有則安裝它
我正在嘗試編寫腳本來備份我的數據。我對此了解不多,所以我可能會採取錯誤的方法,但我想做的是對我要備份的每個目錄多次使用 rsync -avh 。但是,我將目標設置為硬編碼值 -
~/sbackup/
。現在我希望我的腳本在執行之前檢查文件夾是否已安裝,如果沒有 - 嘗試安裝它。因此,腳本邏輯如下所示:1)查看我的U盤是否安裝在
~/sbackup/
. (光碟 - 如果有辦法防止其他 USB 設備安裝在那裡,那就太好了)。2)如果沒有嘗試將其安裝在那裡。如果不能,請編寫錯誤消息並退出。
3)如果已安裝,請執行腳本的其餘部分。
現在我可以編寫錯誤消息等,但我不確定第 1 步和第 2 步的第 1 部分。
如果你有一個
mountpoint
命令:mountpoint -q /local/mount/point || mount ...
不帶參數執行時,
mount
返回已安裝分區的列表和有關它們的一些資訊,包括它們的安裝點。因此,您可以只grep
針對 mount 輸出中的掛載點並採取相應措施:if ! mount | grep -q sbackup; then mount /dev/sdb1 /home/matthew/sbackup || echo "Couldn't mount" && exit fi
更改
/dev/sdb
為您的 USB 分區和matthew
您的使用者名。執行腳本sudo
以便能夠掛載。