您能将文件名无效的文件复制到 ntfs 并自动更改名称吗?

您能将文件名无效的文件复制到 ntfs 并自动更改名称吗?

我在 ext4 磁盘上的许多文件夹中存放了大量文件。其中一些文件包含 ntfs 中的非法字符(如:|),因此当我尝试复制这些文件以在 Windows 中查看时会出错。

是否有任何工具可以让我复制文件并根据需要更改名称,还是我需要自己编写?

答案1

检查这个答案: https://superuser.com/questions/178025/linux-copy-to-fat32-filesystem-invalid-argument

简而言之,安装pax

sudo apt install pax

现在不用这样做:

cp -r sourcedir destdir

要复制目录树,您可以运行:

pax -rw -s '/[*?:]/_/gp' sourcedir destdir

这样pax就可以改名仅在必要时复制文件。

每个*?:字符将自动替换为一个_字符。这意味着多个文件可能会获得相同的新名称。

答案2

原始版本,CLI,一行程序

如果您在源目录中...

for a in *; cp -r "${a}" "/path/to/destination/$(echo ${a} | sed 's/[*?:]/_/g')"; done

为了取得进展,您可以在 for-do 循环中添加此行:

echo Copying "${a} ..."

相关内容