是否有一种在shell上运行cp
的好方法(在我的情况下为MinGW),只复制非隐藏文件(即名称不以{{开头的文件) 1}})?
我想排除我的.
文件夹及其内容。
答案 0 :(得分:8)
shell不会展开*
以包含以点开头的名称,因此:
cp * /target/directory
这不会复制.svn
目录。
如果这不是您的问题(例如,您尝试使用包含隐藏文件的子目录进行递归复制),请说明您的目标。
答案 1 :(得分: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 *
,您会发现这不会扩展到隐藏文件。感谢Jonathan Leffler
答案 2 :(得分:1)
您可以使用ls列出所有非隐藏文件并复制它:
cp $(ls) destination