有没有一种cp
在 shell(在我的情况下为 MinGW)上运行以仅复制非隐藏文件(即名称不以 开头的文件.
)的好方法?
我想排除我的.svn
文件夹及其内容。
shell 不会扩展*
以包含以点开头的名称,因此:
cp * /target/directory
那不会复制.svn
目录。
如果这不是您的问题(例如,您正在尝试使用包含隐藏文件的子目录进行递归复制),请说明您在做什么。
ls 本身只会显示非隐藏文件。如果你echo $file
用你的 cp 命令替换该命令,那应该可以工作。
for file in `ls`; do echo $file; done
像这样的东西可以正常工作:
for file in `ls`; do cp $file /path/to/desitination; done
有更复杂的方法可以做到这一点,但对于您的需要,这似乎足够合适。
**免责声明:如果文件名中有空格,这将不起作用。
修复将只是使用星号通配符。如果您运行echo *
,您会注意到这不会扩展到隐藏文件。感谢乔纳森·莱弗勒
您可以使用 ls 列出所有非隐藏文件并复制它:
cp $(ls) destination