我正在使用 Raspberry Pi 拍摄 3D 打印机的延时照片。我唯一的问题是,我尝试过的所有方法都无法将它们移动到 USB。
我最近尝试过的方法:
~/Desktop/gphoto/images/Split $ mv -v * /media/pi/B0ED-02C5/Split/
我只是不断地收到所有图片的相同错误:
'2019-03-21 22: 46: 29 TL_Shots.JPG' -> '/media/pi/B0ED-02C5/Split/2019-03-21 22: 46: 29 TL_Shots.JPG'
mv: cannot create regular file '/media/pi/B0ED-02C5/Split/2019-03-21 22: 46: 29 TL_Shots.JPG': invalid argument
答案1
您收到的错误通常与目标文件系统有关。USB
设备可能是 FAT 或 NTFS,不允许使用诸如 等特殊字符:
。
一种快速的解决方法是修改 Raspberry 拍照器上的文件命名模式。
如果您想清理文件名以使其被 Windows 文件系统接受,这里有一个简单的 bash 函数可以做到这一点:
function sanitize_file_name {
echo -n $1 | perl -pe 's/[\?\[\]\/\\=<>:;,''"&\$#*()|~`!{}%+]//g;' -pe 's/[\r\n\t -]+/-/g;'
}
这是一个将移动您的文件的示例脚本
#!/bin/bash
## -------- CONFIG ---------------------------------------------
PicsFolder=~/Desktop/gphoto/images/Split ## Source Folder
DestFolder=/media/pi/B0ED-02C5/Split ## Destination Folder
FILES=$PicsFolder/*.jpg ## File selection
## -------------------------------------------------------------
function sanitize_file_name {
echo -n $1 | perl -pe 's/[\?\[\]\/\\=<>:;,''"&\$#*()|~`!{}%+]//g;' -pe 's/[\r\n\t -]+/-/g;'
}
OldIFS=$IFS;
NewIFS="
";
IFS=$NewIFS ## Handle spaces in filenames
for F in $FILES
do
mv $F $DestFolder/$(sanitize_file_name $(basename $F))
done;
IFS=$OldIFS