Windows 7 Git bash`cp`–;排除“;“受保护的操作系统文件”;(这些是什么?)

Windows 7 Git bash`cp`–;排除“;“受保护的操作系统文件”;(这些是什么?),windows-7,cp,git-bash,protected-folders,Windows 7,Cp,Git Bash,Protected Folders,如果我尝试在Git bash(在Windows 7上)中使用cp复制我的主目录,将复制比我想要的更多的内容。下面是一个例子来说明这个问题。实际上,我希望递归复制,但在本例中,我不希望加快速度 Simon@SIMONS-DATOR ~ $ mkdir /c/test Simon@SIMONS-DATOR ~ $ cp ./* /c/test cp: omitting directory `./AppData' cp: omitting directory `./Contacts' cp: omi

如果我尝试在Git bash(在Windows 7上)中使用
cp
复制我的主目录,将复制比我想要的更多的内容。下面是一个例子来说明这个问题。实际上,我希望递归复制,但在本例中,我不希望加快速度

Simon@SIMONS-DATOR ~
$ mkdir /c/test

Simon@SIMONS-DATOR ~
$ cp ./* /c/test
cp: omitting directory `./AppData'
cp: omitting directory `./Contacts'
cp: omitting directory `./Cookies'
cp: omitting directory `./Desktop'
cp: omitting directory `./Documents'
cp: omitting directory `./Downloads'
cp: omitting directory `./Dropbox'
cp: omitting directory `./Favorites'
cp: omitting directory `./GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}'
cp: omitting directory `./Links'
cp: omitting directory `./Lokala inst\303\244llningar'
cp: omitting directory `./Mallar'
cp: omitting directory `./Mina dokument'
cp: omitting directory `./Music'
cp: `./NTUSER.DAT.exe' and `/c/test/NTUSER.DAT' are the same file
cp: omitting directory `./N\303\244tverket'
cp: omitting directory `./Pictures'
cp: omitting directory `./Programdata'
cp: omitting directory `./Recent'
cp: omitting directory `./Saved Games'
cp: omitting directory `./Searches'
cp: omitting directory `./SendTo'
cp: omitting directory `./Skrivare'
cp: omitting directory `./Start-meny'
cp: omitting directory `./Videos'
cp: `./ntuser.dat.LOG1.exe' and `/c/test/ntuser.dat.LOG1' are the same file
cp: `./ntuser.dat.LOG2.exe' and `/c/test/ntuser.dat.LOG2' are the same file

Simon@SIMONS-DATOR ~
$ ls /c/test
NTUSER.DAT{016888bd-6c6f-11de-8d1d-001e0bcde3ec}.TM.blf
NTUSER.DAT{016888bd-6c6f-11de-8d1d-001e0bcde3ec}.TMContainer00000000000000000001.regtrans-ms
NTUSER.DAT{016888bd-6c6f-11de-8d1d-001e0bcde3ec}.TMContainer00000000000000000002.regtrans-ms
NTUSER.DAT{6a7ede06-4c18-11e0-86c3-00262d9124f7}.TM.blf
NTUSER.DAT{6a7ede06-4c18-11e0-86c3-00262d9124f7}.TMContainer00000000000000000001.regtrans-ms
NTUSER.DAT{6a7ede06-4c18-11e0-86c3-00262d9124f7}.TMContainer00000000000000000002.regtrans-ms
NTUSER.DAT{8ef111c8-e816-11df-8bd5-00262d9124f7}.TM.blf
NTUSER.DAT{8ef111c8-e816-11df-8bd5-00262d9124f7}.TMContainer00000000000000000001.regtrans-ms
NTUSER.DAT{8ef111c8-e816-11df-8bd5-00262d9124f7}.TMContainer00000000000000000002.regtrans-ms
NTUSER.DAT{e9e59e5b-940d-11e0-8662-00262d9124f7}.TM.blf
NTUSER.DAT{e9e59e5b-940d-11e0-8662-00262d9124f7}.TMContainer00000000000000000001.regtrans-ms
NTUSER.DAT{e9e59e5b-940d-11e0-8662-00262d9124f7}.TMContainer00000000000000000002.regtrans-ms
_.swp
_viminfo
ntuser.ini
php_errors.log
我不想复制这些ntuser文件。如果我递归复制,我不希望复制以下文件夹(翻译尝试向右):

如果我尝试复制recursivley,上述所有文件夹都将在目标位置创建,但它们将保持为空,因为对它们的权限似乎被拒绝:

cp: cannot access `/c/Users/Simon/Cookies': Permission denied
cp: cannot access `/c/Users/Simon/Documents/Min musik': Permission denied
cp: cannot access `/c/Users/Simon/Documents/Mina bilder': Permission denied
cp: cannot access `/c/Users/Simon/Documents/Mina videoklipp': Permission denied
cp: cannot access `/c/Users/Simon/Lokala inst\303\244llningar': Permission denied
cp: cannot access `/c/Users/Simon/Mallar': Permission denied
cp: cannot access `/c/Users/Simon/Mina dokument': Permission denied
`/c/Users/Simon/NTUSER.DAT' -> `/e/Backup/Simon/NTUSER.DAT'
cp: `/c/Users/Simon/NTUSER.DAT.exe' and `/e/Backup/Simon/NTUSER.DAT' are the same file
cp: cannot access `/c/Users/Simon/N\303\244tverket': Permission denied
cp: cannot access `/c/Users/Simon/Programdata': Permission denied
cp: cannot access `/c/Users/Simon/Recent': Permission denied
cp: cannot access `/c/Users/Simon/SendTo': Permission denied
cp: cannot access `/c/Users/Simon/Skrivare': Permission denied
cp: cannot access `/c/Users/Simon/Start-meny': Permission denied
`/c/Users/Simon/ntuser.dat.LOG1' -> `/e/Backup/Simon/ntuser.dat.LOG1'
cp: `/c/Users/Simon/ntuser.dat.LOG1.exe' and `/e/Backup/Simon/ntuser.dat.LOG1' are the same file
`/c/Users/Simon/ntuser.dat.LOG2' -> `/e/Backup/Simon/ntuser.dat.LOG2'
cp: `/c/Users/Simon/ntuser.dat.LOG2.exe' and `/e/Backup/Simon/ntuser.dat.LOG2' are the same file
从上面的日志中可以看出,
~/Documents
(右侧的翻译尝试)中似乎还有其他不需要的文件夹:

无论如何,由于权限被拒绝,我没有受到这个问题的太大影响:我的目标文件夹中只会有一些额外的不必要的空文件夹和一些额外的不必要的文件,还有一些日志中来自
cp
的“权限被拒绝”抱怨

在试用
cp
命令之前,我甚至不知道这些文件。显然,必须取消选中文件夹选项中的“隐藏受保护的操作系统文件(建议)”,以便它们显示在Windows资源管理器中,然后,当它们显示时,它们上面有一个小箭头,就像快捷方式一样,它们是半透明的,就像隐藏的文件一样(如
~/AppData

真正的用法是用于小型备份脚本,它使用
cp$src“$dstdir”-update--archive--backup=numbered--verbose
执行实际的复制,使用
shopt-s extglob;shopt-s dotglob
src=“/c/Users/Simon/!(AppData)”
(请注意
--arcgive
意味着递归复制),如果其中任何一个是感兴趣的编辑:需要注意的是,我希望通过上述备份脚本实现的是备份我的用户文件夹中的大多数文件(最重要的是我的文档、图片和视频,还有碰巧在那里的.ssh和.gitconfig(除非我按照VonC的回答中的建议进行备份))。我只是碰巧使用了GitBash,因为我已经安装了它,它提供了一种非常简单的方法来完成我想要的备份。它与Git无关。另请参见下面的附加编辑

那么如何防止
cp
命令试图复制这些文件呢?(或者,我是否应该使用
cp
?(模糊的问题,我知道,但它不是主要问题,如果需要,我可以详细说明。)

原来是一个子问题:这些文件是什么?(据我记忆所及,它们中的许多在Windows XP上作为更“普通”的文件夹存在。)编辑:它们至少可能是Windows XP的遗留文件

编辑: 为了备份文件(这似乎是我的根本问题),由于VonC,我现在有很多解决方案和选项:

我已经将
%HOME%
设置为
/c/git
,这是我保存所有回购的地方,因此所有git(bash)文件都可以在一个地方使用。此外,它简化了备份:而不是备份
/c/Users/Simon/!(AppData)
(如前所述),我可以轻松地指向更具体的目标:

"/c/Users/Simon/Documents/*"
"/c/Users/Simon/Music/*"
"/c/Users/Simon/Pictures/*"
"/c/Users/Simon/Videos/*"
"/c/Users/Simon/Desktop/*"
因此,我基本上避免了这个问题,在
~/Documents
中仍然保留着不需要的文件夹(见上文)

我现在了解到,Windows特定的工具,如
xcopy
xxcopy
robocy
,可能更适合备份,但目前我更喜欢
cp
的简单性,而不必深入Windows命令行

我希望这些关于备份的冗长评论对某些人有用。我认为“我应该使用别的东西而不是代码> CP <代码>吗?”问题得到了充分的回答,我的主要问题得到了解决。
尽管如此,“如何防止
cp
命令试图复制这些/此类文件?”
问题仍然没有解决(除了“使用Windows特定工具”之类的答案),可能与许多人有关。

如果您要编写备份脚本,最好避免使用cp,并使用Windows实用程序,比如:
它可以管理各种bazckup场景,包括增量场景


以git为中心的原始答案

如果未定义
%HOME%
,则and将重试并使用
%USERPROFILE%

我建议在调用git命令之前定义环境变量
%HOME%
,以便
HOME
只包含使用git(
.gitconfig
\u netrc
.ssh
,…)和开发所需的内容


这样,你就可以准确地控制你所需要的
cp
,而不是试图把
/c/Users/aLoginName

这是一个很好的建议,但这不是我想要的。“我会澄清我的问题。”莱德尔明白了,你的问题现在很清楚了。我已经编辑了我的答案并提出了一个替代方案。谢谢。应该注意的是,“最初的以git为中心的答案”最终证明并不是那么“以git为中心”:它在很大程度上解决了我的问题,同时也带来了一些巨大的副作用!(见我的编辑。)@lydell好极了。至少,你已经找到了一种适合你的方法。我将继续关注
cp
问题。
./Min musik          (My music)
./Mina bilder        (My pictures)
./Mina videoklipp    (My video clips)
"/c/Users/Simon/Documents/*"
"/c/Users/Simon/Music/*"
"/c/Users/Simon/Pictures/*"
"/c/Users/Simon/Videos/*"
"/c/Users/Simon/Desktop/*"