5

有没有一种cp在 shell(在我的情况下为 MinGW)上运行以仅复制非隐藏文件(即名称不以 开头的文件.)的好方法?

我想排除我的.svn文件夹及其内容。

4

3 回答 3

9

shell 不会扩展*以包含以点开头的名称,因此:

cp * /target/directory

那不会复制.svn目录。

如果这不是您的问题(例如,您正在尝试使用包含隐藏文件的子目录进行递归复制),请说明您在做什么。

于 2012-08-07T19:49:26.260 回答
1

ls 本身只会显示非隐藏文件。如果你echo $file用你的 cp 命令替换该命令,那应该可以工作。

for file in `ls`; do echo $file; done

像这样的东西可以正常工作:

for file in `ls`; do cp $file /path/to/desitination; done

有更复杂的方法可以做到这一点,但对于您的需要,这似乎足够合适。

**免责声明:如果文件名中有空格,这将不起作用。

修复将只是使用星号通配符。如果您运行echo *,您会注意到这不会扩展到隐藏文件。感谢乔纳森·莱弗勒

于 2012-08-07T19:48:12.027 回答
1

您可以使用 ls 列出所有非隐藏文件并复制它:

cp $(ls) destination
于 2012-08-07T19:48:33.477 回答