为什么我不能将目录中的所有文件复制到 U 盘?

sho*_*key 11 filesystems cp filenames usb-drive exfat

sdc1安装在/media/debian/Ventoy

debian@debian:~$ sudo blkid | grep Ventoy
/dev/sdc1: LABEL="Ventoy" UUID="F82D-76BE" BLOCK_SIZE="512" TYPE="exfat" PTTYPE="dos" PARTUUID="1af31d46-01"

debian@debian:~$ df  /media/debian/Ventoy
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sdc1       15324256 7971552   7352704  53% /media/debian/Ventoy
Run Code Online (Sandbox Code Playgroud)

显示目录中的内容material

ls  material
'Best Semiconductor Stocks & ETFs in 2021 | The Motley Fool_files'  'How To Use AppImage in Linux [Complete Guide] - It'\''s FOSS_files'
'Best Semiconductor Stocks & ETFs in 2021 | The Motley Fool.html'   'How To Use AppImage in Linux [Complete Guide] - It'\''s FOSS.html'
Run Code Online (Sandbox Code Playgroud)

将其复制到/tmp

sudo cp -R  material    /tmp
Run Code Online (Sandbox Code Playgroud)

它工作正常。然后将其复制到sdd1

sudo cp -R  material    /media/debian/Ventoy
cp: cannot create directory '/media/debian/Ventoy/material/Best Semiconductor Stocks & ETFs in 2021 | The Motley Fool_files': No such file or directory
cp: cannot create regular file '/media/debian/Ventoy/material/Best Semiconductor Stocks & ETFs in 2021 | The Motley Fool.html': No such file or directory
Run Code Online (Sandbox Code Playgroud)

为什么我不能将目录中的所有文件都复制到USB存储设备中?

bxm*_*bxm 37

我的眼睛直接跳到你的文件名中有一个管道|的事实。

根据您的输出,文件系统类型为exfat. FAT 及其衍生物不支持在文件名中包含管道和其他一些内容。

如果您要重命名文件以去除有问题的字符,我想您会取得更大的成功。有多种方法可以一起执行此操作。也就是说,如果 HTML 文件相互之间有链接,这将破坏链接,因此您必须做进一步的工作来修复链接。

另一种选择是将 USB 设备重新格式化为更宽容的类型,例如 ext 系列。但这可能会妨碍您在非基于 Linux 的操作系统上使用 USB 记忆棒的能力,但我不知道这是否适合您。

  • ...或者可能将文件放入某种存档格式,如`tar`?(如果 USB 专门用于在两个非 DOS 文件系统之间传输文件) (20认同)
  • 错别字:`extfat` => `exfat`。没有文件名限制(`/` 和 null 除外)的最佳广泛兼容文件系统可能是 NTFS,尽管具有这些名称的文件/路径可能无法正确显示或在 Windows 上使用 Win32 API 的应用程序中无法轻松访问。NTFS 文件系统本身支持它们,它们可以在 Linux 和 WSL 上正常工作。 (3认同)