我在bash脚本中使用命令cp ./* "backup_$timestamp"
将目录中的所有文件备份到子目录中的备份文件夹中。这工作正常,但脚本不断输出警告消息:
cp: omitting directory `./backup_1364935268'
如何在不消除我可能想知道的任何其他警告的情况下告诉cp关闭?
答案 0 :(得分:7)
对我有用的解决方案如下:
find -maxdepth 1 -type f -exec cp {} backup_1364935268/ \;
它从当前目录中复制所有(包括以点开头的)文件,不触及目录,也不会抱怨它。
答案 1 :(得分:3)
您可能希望在该脚本中使用cp -r
。这将以递归方式复制源包括目录。目录将被复制,消息将消失。
如果您不想复制目录,可以执行以下操作:
2>&1
script | grep -v 'omitting directory'
引自grep man page:
-v, --invert-match Invert the sense of matching, to select non-matching lines.
答案 2 :(得分:0)
复制目录时,请确保使用-R
-R,-r,-递归复制目录
--reflink[=WHEN] control clone/CoW copies. See below
--remove-destination remove each existing destination file before
attempting to open it (contrast with --force)
--sparse=WHEN control creation of sparse files. See below
--strip-trailing-slashes remove any trailing slashes from each SOURCE