使用循环创建unix文件

使用循环创建unix文件,unix,createfile,Unix,Createfile,我有一个在UNIX中每天填充87个文本文件的列表 例如:FP*.txt---文件名以FP开头&是txt文件 每天的新内容都会附加到末尾。我想使用shell脚本备份所有文本文件,并创建同名的空白文件。我尝试了以下方法 echo "" > FP*.txt 和>FP*.txt 两人都犯了同样的错误 FP*.txt: ambiguous redirect 但是,当在单个文件上使用时,两者都可以正常工作。那么如何解决呢。此外,创建硬编码名称列表也不是一个选项,因为87个名称太多,而且将来可能会增

我有一个在UNIX中每天填充87个文本文件的列表

例如:FP*.txt---文件名以FP开头&是txt文件 每天的新内容都会附加到末尾。我想使用shell脚本备份所有文本文件,并创建同名的空白文件。我尝试了以下方法

echo "" > FP*.txt
>FP*.txt

两人都犯了同样的错误

FP*.txt: ambiguous redirect
但是,当在单个文件上使用时,两者都可以正常工作。那么如何解决呢。此外,创建硬编码名称列表也不是一个选项,因为87个名称太多,而且将来可能会增加

还有一些文件名的名称中包含(&)

echo "" > FP---Sample.txt
这很好。但是当尝试以下操作时,出现了错误

echo "" > FP(1)---Sample.txt
这是一个错误

意外标记“(”附近出现语法错误


那么如何实现它呢?

将文件名用引号括起来:

echo "" > "FP(1)---Sample.txt"
你得到一个

FP*.txt:不明确的重定向

因为您可以重定向到一个文件,而
FP*.txt
可以扩展到多个文件。这就是为什么扩展只返回一个名称时会起作用

要执行所需操作,最好循环查看
FP*.txt
的结果。例如,您可以使用:

bk_date=$(date "+%Y%m%d_%H%M%S")       # 20140210_150526 format of date
for file in FP*.txt
do
   cp -p "$file" "${file}.${bk_date}"  # make a backup of the file
   > "$file"                   # blank it. This is same as echo "" > "$file"
done
关于错误:

意外标记“(”附近出现语法错误


您需要引用名称以使其成为文件名的一部分。

thanxs..这样排序很好,请阅读,@debarata!因为您是新来的,如果您的问题已经解决,请不要忘记将答案标记为已接受。您可以单击答案旁边的复选标记将其从空心切换为绿色。看看您是否接受了答案我不怀疑!