将目录从ext3复制到FAT32,忽略符号链接,管道等


1

我正在尝试编写一个shell脚本,我在其中递归地将目录复制到USB记忆棒。我需要复制操作的返回值以进行错误检查。我试过了

cp -a /var/mydir /media/usbdrive

cp -r /var/mydir /media/usbdrive

以及其他几个,但问题是我总是得到错误,如:

Cannot create fifo: /path/to/fifo Operation not permitted

虽然这些是警告并且复制操作仍在继续,但是我从操作中返回了一个不成功的错误代码,这会在我的脚本中混淆错误处理。如何递归复制并忽略在FAT32文件系统上无效的fifos,符号链接和其他实体?

Answers:


2

你应该可以使用 find 命令。该 -type 选项允许您限制您找到的文件类型,因此您可以忽略符号链接和管道等,以及 -exec 选项允许您为找到的每个文件运行命令。

首先创建USB记忆棒上的所有目录:

cd /var/mydir
find * -type d -exec mkdir /media/usbdrive/{} \;

然后复制所有普通文件:

cd /var/mydir
find . -type f -exec cp {} /media/usbdrive/{} \;

在这个位置也适用于金士顿USB记忆棒+在Linux上批量测试这些该死的小型存储设备,默认为FAT 32 FS。谢谢@Dave Webb
tuk0z
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.