Bash

如何檢查目錄是否安裝在磁碟 X 上,如果沒有則安裝它

  • November 26, 2018

我正在嘗試編寫腳本來備份我的數據。我對此了解不多,所以我可能會採取錯誤的方法,但我想做的是對我要備份的每個目錄多次使用 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以便能夠掛載。

引用自:https://unix.stackexchange.com/questions/247529