我想创建一个函数来归档所有早于某个预先指定的文件的文件。到目前为止,我有以下内容:
archive_gs() { find "$GS" -maxdepth 1 -not -newer "$1" -exec mv -t "$GS/../old/" {} \; }
但是这会返回syntax error: unexpected end of file
错误。我猜想这与未转义的花括号有关?谢谢!
答案1
在 bash 中,{
和}
的作用类似于关键字,而不是标点符号 - 如果结尾}
与命令位于同一行,则命令必须以;
或其他分隔符结尾。(换句话说,其作用与或{ x; }
完全相同。)do x; done
if x; then x; fi
现有的\;
不算数,因为反斜杠使其成为“find”的常规参数,因此不再是命令终止符。
正确的命令是:
archive_gs() { find "$GS" -maxdepth 1 -not -newer "$1" -exec mv -t "$GS/../old/" {} \;;}