我想将我的数据复制到 USB 驱动器并收到错误消息。
原因是,当复制所有数据时,我在开头得到了一个“/”。
有人知道为什么吗?
您可以在下面看到我的代码:
if ( [ -e $Dirname ] && [ -e /dev/sdb1 ] )
then
cp /home/jason/tmp/*_backup* /$Dirname
rm -r /home/jason/tmp/*_backup*
echo "Your data was successfully copied."
else
echo "Your USB stick is not connected or not mounted."
fi
$Dirname < /home/jason/Programs/Script/dirname_backup2usb.txt
我给 $Dirname 的参数是:
#!/bin/bash
/media/xyz
答案1
测试并/dev/sdb1
不能保证任何事情。您想识别 USB 驱动器上文件系统的挂载点。尝试使用带有 的命令行lsblk
,例如
lsblk -f
或者我认为更好,
lsblk -o NAME,SIZE,HOTPLUG,FSTYPE,LABEL,MOUNTPOINT,MODEL | grep -v '/snap/'
您可以创建一个别名以使其更容易:
alias mylsblk="lsblk -o NAME,SIZE,HOTPLUG,FSTYPE,LABEL,MOUNTPOINT,MODEL | grep -v '/snap/'"
并将其编辑到~/.bashrc
文件中其他别名的附近。运行
source ~/.bashrc
您可以开始使用它:
$ mylsblk
NAME SIZE HOTPLUG FSTYPE LABEL MOUNTPOINT MODEL
sda 238,5G 0 SanDisk SD6SB1M2
├─sda1 500M 0 ntfs System
├─sda2 139,4G 0 ntfs Windows
├─sda3 1000M 0 ntfs Recovery
├─sda4 1K 0
├─sda5 89,7G 0 ext4 lubionic /
└─sda6 8G 0 swap [SWAP]
sdb 3,7T 0 WDC WD4002FYYZ-0
├─sdb1 510M 0 ext4 boot-nvme-focal
├─sdb2 30G 0 ext4 xubufocal-hdd
├─sdb5 1M 0
├─sdb6 100G 0 ext4 studio12.04
├─sdb7 3,5T 0 ext4 multimed-2 /media/multimed-2
└─sdb8 5G 0 swap
sdc 15G 1 Transcend 16GB
└─sdc1 15G 1 vfat KEEP_ME /media/nio/KEEP_ME
sr0 1024M 1 DVD-RW DH16AESH
nvme0n1 232,9G 0 KINGSTON SA2000M8250G
├─nvme0n1p1 232,9G 0 ext4 nvme-focal
└─nvme0n1p2 1M 0
在我的电脑的例子中,有许多驱动器和更多分区。但现在您可以看到 HOTPLUG 为 1 /dev/sdc
,并且您可以看到大小和型号,以便于识别。因此在这种情况下您应该复制到 FAT 文件系统的挂载点/media/nio/KEEP_ME
。