我想知道此错误的可能情况是什么:
cp: reading `filename': Input/output error
Run Code Online (Sandbox Code Playgroud)
当我尝试复制大约 50MB 的大文件时收到此消息。
我曾经cp -rl复制一个文件夹。在测量源和副本结果的du -sl大小时,返回的大小略有不同,即使diff确认它们的内容相同:
$ cp -rl folderA/ folderB/
$ du -sl folderA folderB
98561224 folderA
98590512 folderB
$ diff --brief -ra folderA/ folderB/
$
Run Code Online (Sandbox Code Playgroud)
两个文件夹都驻留在同一个硬盘上,在复制和测量之间没有对它们中的任何一个进行任何修改。我什么也没发现的文档du和cp这可以解释的差异。
我只想将文件夹树复制到另一个地方,如下所示:
cp -avr /blah/blah/htdocs ./
Run Code Online (Sandbox Code Playgroud)
但我有错误:
cp: the -R and -r options may not be specified together.
Run Code Online (Sandbox Code Playgroud)
我遵循了本教程:http : //www.cyberciti.biz/faq/copy-folder-linux-command-line/ 这是关于 Linux,而我使用的是 Mac。我发现我可以通过使用 -avR 来解决。但是,我想知道为什么 -avr 会导致 Mac 上出现奇怪的错误。
如何在 Linux 中复制只读文件并在 Linux (Ubuntu 10.04) 中使用单个 cp 命令使副本可写?
--no-preserve 和 --preserve 似乎是不错的候选者,除了它们应该“和”模式标志,而我正在寻找的是将“或”它们(添加 +w 模式)的东西。
更多细节:
我必须将存储库从 GIT 导入到 Perforce。我希望所有 Perforce 软件仓库文件都是只读的(这就是 Perforce 的设计方式),而从软件仓库文件派生/复制的所有其他文件都是可写的。目前,如果 Makefile 尝试复制只读文件,则派生文件也将是只读的。当 cp 尝试第二次覆盖只读文件时,这会导致构建错误。当然 --force 在这里是一种解决方法,但派生文件也是只读的。另外,我不想在每个“cp”命令之后都使用“chmod”——我只会把它作为最后的手段。
我正在尝试编写一个站点部署脚本,它将像这样复制文件:
来源
.
..
src/
html/
Run Code Online (Sandbox Code Playgroud)
目标
.
..
src/
html/ -> /var/www/ftproot/mysite
Run Code Online (Sandbox Code Playgroud)
我希望 SOURCE 中的文件html转到 DEST /var/www/ftproot/mysite。
脚本是:
cd SOURCE
cp -Rf * DEST
Run Code Online (Sandbox Code Playgroud)
每次运行脚本时,都会出现此错误:
cp: cannot overwrite non-directory 'html' with directory `html'
Run Code Online (Sandbox Code Playgroud)
由此,我推断cp当 DEST 具有符号链接时无法自动将文件复制到 DEST 中。
笔记:
按照cp 手册,我设置POSIXLY_CORRECT为 1。这不起作用。
我不得不将站点链接html到ftproot/mysite而不是反之,因为 ftp 用户有奇怪的访问模式。
这家伙修改了 cp源代码并重新编译了它。我不想对生产服务器这样做。
关于如何解决这个问题的任何想法?
我想复制修改和访问时间,而不是用户 ID。如果我使用
cp -p source target
Run Code Online (Sandbox Code Playgroud)
它会复制一切。
我正在尝试将文件复制到其他用户,但保持原始日期不变。
我如何复制/home/src/somedir到/dest/使得路径总是以 结束/dest/somedir,而不管是否/dest/somedir已经存在?
我想避免以/dest/somedir/somedir.
如何复制里面的一切/home/src/somedir,以/dest/这样/dest/somedir不创建,如果它已经存在被忽略?
是否有关于我可以使用的尾部斜杠的规则?我认为以斜杠结尾意味着总是只复制内容,但对我来说它仍然经常出错。
我在 Linux 服务器上有一个包含 35 个以上子目录的文件夹,内容如下:
aa.foo.bar.baz
ab.foo.bar.baz
..
bp.foo.bar.baz
Run Code Online (Sandbox Code Playgroud)
我有一个文件要复制到每个子目录中。在不手动运行 35 个以上单独的cp命令的情况下,有什么快速的方法可以做到这一点?
理想情况下,我正在寻求一种重命名我所有动漫的方法,同时保持原始文件的完整性,而无需使用额外的数据空间
我能想到的解决方案是创建一个到另一个位置的重复文件夹路径,然后将每个文件符号链接到新的重复文件夹路径中,以便为媒体刮刀重命名以识别它们
我的问题是如何为文件夹中的每个文件创建一个指向新位置的符号链接。
使用 FreeBSD 9,以下对我不起作用:
cd ../bar
cp --symbolic-link ../foo/* .
Run Code Online (Sandbox Code Playgroud)
单独进行(但是这是文件重命名,现在不需要)
ln -s "/ZFSRaidz/Multimedia/Anime/Naruto_Shippuuden/[HorribleSubs] Naruto Shippuuden - 244 [480p].mkv" "/ZFSRaidz/XBMC/Multimedia/Anime/Naruto_Shippuuden/Naruto Shippuuden-244.mkv"
Run Code Online (Sandbox Code Playgroud) 有人可以帮我理解这意味着什么吗?
cp: -r not specified; omitting directory
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用此命令
sudo cp /home/$USER/Documents/myfile.10 /home
Run Code Online (Sandbox Code Playgroud)
错误:
cp: -r not specified; omitting directory '/home/administrator/Documents/myfile.10'
Run Code Online (Sandbox Code Playgroud)
这是什么意思?为什么会这样?我该怎么办?
cp ×10
linux ×6
command-line ×2
bash ×1
du ×1
freebsd ×1
git ×1
hardlink ×1
ln ×1
macos ×1
perforce ×1
permissions ×1
read-only ×1
shell-script ×1