我cp ./* "backup_$timestamp"
在 bash 脚本中使用该命令将目录中的所有文件备份到子目录中的备份文件夹中。这工作正常,但脚本不断输出警告消息:
cp: omitting directory `./backup_1364935268'
我如何告诉 cp 闭嘴而不消除我可能想知道的任何其他警告?
对我有用的解决方案如下:
find -maxdepth 1 -type f -exec cp {} backup_1364935268/ \;
它从当前目录复制所有(包括以点开头的)文件,不接触目录,也不抱怨它。
可能您想cp -r
在该脚本中使用。这将递归地复制源,包括目录。目录将被复制,消息将消失。
如果您不想复制目录,可以执行以下操作:
2>&1
script 2>&1 | grep -v 'omitting directory'
引用 grep 手册页:
-v, --invert-match
Invert the sense of matching, to select non-matching lines.
复制目录时,请确保使用 -R
-R, -r, --recursive 递归复制目录
--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