我知道在手册页中它是这么写的,-x, --one-file-system stay on this file system
但是有人可以像我五岁一样向我解释一下吗?
答案1
cp -ax
,rsync -x
或tar -one-file-system
, 都相同。
就是不跨越的意思文件系统边界。
文件系统之间的边界是挂载点。
如果运行df -a
,您将看到所有文件和挂载点。
为了帮助您理解,举个例子:
如果您df
在文件系统:df /
或 /usr 目录:上运行df /usr
,您将看到它们安装在/
您的安装分区上。但如果你在 /proc 上运行它,df /proc
你会发现挂载点是不同的。
因此,如果您在文件系统上发出递归副本 cp -ax /
,它不会复制 /proc
目录。
-v
如果您想准确查看丢弃的内容和正在复制的内容,可以添加选项。
正如其他人指出的那样,它与递归一起使用,人们通常使用它进行备份。
你应该看到“跨越文件系统边界的意义”有关挂载点的更多信息。
答案2
cp
如果您与递归一起使用,即与-r
or一起使用-a
,并且源位于安装点之上,那么这会有所不同。
例如:/data/job/encrypt
是一个活动挂载点。
cp -a /data/job /path/to/target # includes /data/job/encrypt
cp -ax /data/job /path/to/target # excludes /data/job/encrypt
答案3
根据我的理解,这意味着它只会复制当前正在运行的文件系统上的内容,而不是从可能存在的另一个文件系统中复制内容
例子。如果您在 /home/jkris/mnt/otherfs 下安装了另一个文件系统(另一个物理磁盘、USB 或远程文件系统),然后继续
cp -ax /home/jkris/ /mybackup/dir/
它不会从 ~/mnt/otherfs 复制任何内容
类似的问题和答案在这里:https://superuser.com/questions/307541/copy-entire-file-system-hierarchy-from-one-drive-to-another
答案4
要指定要复制的数据是可执行文件,我们使用此命令cp-X在USS主机部分。
我希望这有帮助。