當我試圖將目錄從Linux主目錄複製到USB驅動器(筆式驅動器)時,在以下命令cp -r /home/directoryname /media/usbname(pendrivename)
的情況下它工作正常。連接時自動檢測USB設備名稱
但我期待的命令,複製目錄與出給「usbname(pendrivename)」
當我試圖將目錄從Linux主目錄複製到USB驅動器(筆式驅動器)時,在以下命令cp -r /home/directoryname /media/usbname(pendrivename)
的情況下它工作正常。連接時自動檢測USB設備名稱
但我期待的命令,複製目錄與出給「usbname(pendrivename)」
不知道我明白你的需求,但如果我有這樣的腳本應該能在您的USB做的伎倆驅動器總是monted同一個標籤:
#!/bin/bash
cp -r $1 /media/usbname(pendrivename)
如果保存腳本~/cpusb.sh
,你可以這樣做:
chmod cpusb.sh
echo "alias cpusb=cpusb.sh" >> .bash_aliases
source
然後用cpusb
當你想要。
我想我會用mount
文本推斷使用sed
或awk
連接的USB的目錄。
甚至可以在沒有任何連接時保存mount
的結果,並在連接新的USB設備後從mount
的結果中「扣除」它。
甚至更好,運行腳本之前連接設備:
- 將運行該腳本mount
每一秒,並等待結果中的一個變化。
- 當檢測到更改時,新添加的設備就是您的usb。
喜歡的東西:
#!/bin/bash
mount_old="$(mount)"
mount_new="${mount_old}"
while [[ "${mount_new}" == "${mount_old}" ]]; do
sleep 1
mount_new="$(mount)"
done
# getting added line using sort & uniq
sort <(echo "${mount_old}") <(echo "${mount_new}") | uniq -u | awk '{ print $3 }'
# another way to achieve this using diff & grep
# diff <(echo "${mount_old}") <(echo "${mount_new}") | grep ">" | awk '{ print $4 }'
它只是一個草圖,可能需要/想完善它。
in shell腳本cp -r $ 1/media/usbname(pendrivename)它的工作適用於任何pendrive或只有特定的一個。 – nalini 2015-03-31 12:57:31
你必須用USB設備的標籤替換'usbname(pendrivename)'。如果它是經典的分配,標籤是固定的。您可以使用像gparted這樣的工具修改它。 – 2015-03-31 13:00:44
可以請你清楚一點, – nalini 2015-03-31 13:03:49