将 JPG 从家里的目录移动到 USB 吗?

将 JPG 从家里的目录移动到 USB 吗?

我正在使用 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

相关内容