当我尝试将目录从Linux主目录复制到USB驱动器(笔式驱动器)时,在以下命令cp -r /home/directoryname /media/usbname(pendrivename)
的情况下,它正常工作。
但我正在查看命令,复制目录而没有给出" usbname(pendrivename)"
答案 0 :(得分:0)
我不确定我是否了解您的需求,但是如果我有一个这样的脚本,那么如果您的USB驱动器始终使用相同的标签进行监视,则应该可以解决这个问题:
#!/bin/bash
cp -r $1 /media/usbname(pendrivename)
如果您将脚本保存为~/cpusb.sh
,则可以执行以下操作:
chmod cpusb.sh
echo "alias cpusb=cpusb.sh" >> .bash_aliases
source
然后根据需要使用cpusb
。
答案 1 :(得分:0)
我想我会使用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 }'
这只是一个草图,你可能需要/想要改进它。