我试图只将文件的一个子集从一个目录复制到另一个目录,cp但是我收到了消息cp: cannot stat [^\.php]': No such file or directory。有没有办法只使用cp命令来使用正则表达式?
对于 *nix 中的普通文件复制,我只见过人们使用 cp(例如cp /mnt/mydevice/myfile ~/myfile),但我最终遇到了dd,它似乎做完全相同的事情(dd if=/mnt/mydevice/myfile of=~/myfile)。我确实看到它们有一些不同的可用参数(dd 在微调复制方面似乎更好),但它们似乎是多余的。这些工具真的做同样的事情吗?
我需要将几个 Gb 从外部 HD 复制到我的主 HD,并且某些文件会导致错误。如果我使用查找器执行此操作,它将在第一个错误处停止。
无论错误如何,有没有办法复制所有内容?类似于Windows版Teracopy 的副本?
install -c和 和有cp什么区别?大多数安装都倾向于使用install -c,但从man页面上看,它听起来并没有什么不同cp(除了可能还设置权限的能力)。我应该什么时候使用install -c,什么时候使用cp?
如何阻止 cp 命令提示覆盖。我想覆盖所有文件而不必继续返回终端。由于这些文件很大,需要一些时间才能完成。
我尝试使用 -f 选项。它仍然询问我是否要覆盖。
-f, --force
if an existing destination file cannot be opened, remove it and
try again (redundant if the -n option is used)
cp -f /media/somedir/somefiles* .
cp: overwrite `./somefilesxxx'? y
Run Code Online (Sandbox Code Playgroud) 我想将一个包含大量文件的目录复制到另一个目的地。我做了:
cp -r src_dir another_destination/
Run Code Online (Sandbox Code Playgroud)
然后我想确认目标目录的大小和原来的一样:
du -s src_dir
3782288 src_dir
du -s another_destination/src_dir
3502320 another_destination/src_dir
Run Code Online (Sandbox Code Playgroud)
然后我想到可能有几个符号链接没有跟在cp命令后面并添加了-a标志:
-a 与 -pPR 选项相同。保留文件的结构和属性,但不保留目录结构。
cp -a src_dir another_destination/
Run Code Online (Sandbox Code Playgroud)
但du -s给了我同样的结果。有趣的是,源和目标都具有相同数量的文件和目录:
tree src_dir | wc -l
4293
tree another_destination/src_dir | wc -l
4293
Run Code Online (Sandbox Code Playgroud)
我做错了什么,我用du命令得到了不同的大小?
更新
当我尝试使用du命令获取单个目录的大小时,我得到了不同的结果:
du -s src_dir/sub_dir1
1112 src_dir/sub_dir1
du -s another_destination/src_dir/sub_dir1
1168 another_destination/src_dir/sub_dir1
Run Code Online (Sandbox Code Playgroud)
当我查看带有 的文件时ls -la,单个文件大小相同但总数不同:
ls -la src_dir/sub_dir1
total 1168
drwxr-xr-x 5 hirurg103 staff 160 Jan 30 20:58 …Run Code Online (Sandbox Code Playgroud) 我有目录a和目录b。他们很大。b 与 a 几乎相同。“几乎”意味着 4-5 个文件不同,我不知道它们是哪个。我想将 b 复制到 a 上,但只复制不同的文件。我在 bash 中。
(不,我不能简单地删除 a 并用 b 替换它,因为 1)a 是受版本控制的 2)完整副本(或 mv)需要太多。我只想复制不同的文件)。
cp -l硬链接文件而不是复制它们,节省文件系统空间。由于其--exclude功能,我需要使用 rsync 而不是 cp 。
所以我的问题是,如何将 rsync 同步到硬链接文件而不是复制它们?显然,这是一个本地文件系统副本。我已经阅读了 rsync-H选项的文档,但我不清楚这是否与cp -l.
对于递归复制目录,使用tar打包目录然后将输出管道输出到另一个tar解包似乎比使用cp -r(或cp -a)快得多。
为什么是这样?为什么不能通过cp在引擎盖下以相同的方式进行操作来提高速度?
编辑:在尝试复制包含数万个文件和文件夹的巨大目录结构时,我注意到了这种差异,这些目录结构是深度嵌套的,但总共只有 50MB 左右。不确定这是否相关。
由于硬盘问题,我试图将分区从一个硬盘转移到另一个。我正在关注http://www.ibm.com/developerworks/library/l-partplan.html文章来做到这一点。在复制部分,我想忽略一个特定的子目录。在复制时我如何做到这一点,我必须保留我的所有者组和时间戳。如果我不忽略特定的子目录,则需要复制大约 700 GB 的数据。