我想使用Linux命令将文件1的内容复制到文件2中。
cat file1 > file2
根据程序运行的不同环境,文件1可能存在或不存在。如果文件1不存在应该在命令中添加什么以便不返回错误?我读到过追加2>/dev/null不会出错。尽管如此,当file1不存在时,命令
cat file1 2>/dev/null > file2
让文件2的先前内容完全丢失了。我不希望在文件1不存在时丢失文件2的内容,也不希望返回错误。
同时,请问还有哪些情况下该命令会执行失败并返回错误?
我想使用Linux命令将文件1的内容复制到文件2中。
cat file1 > file2
根据程序运行的不同环境,文件1可能存在或不存在。如果文件1不存在应该在命令中添加什么以便不返回错误?我读到过追加2>/dev/null不会出错。尽管如此,当file1不存在时,命令
cat file1 2>/dev/null > file2
让文件2的先前内容完全丢失了。我不希望在文件1不存在时丢失文件2的内容,也不希望返回错误。
同时,请问还有哪些情况下该命令会执行失败并返回错误?
首先测试file1
文件。
[ -r file1 ] && cat ...
查看 help test
以获取详细信息。
对 @Ignacio Vazquez-Abrams 进行详细阐述:
if (test -a file1); then cat file1 > file2; fi
首先,你写道:
我正在尝试使用Linux命令将file1的内容复制到file2中
要将file1的内容复制到file2中,请使用cp
命令:
if ! cp file1 file2 2>/dev/null ; then
echo "file1 does not exist or isn't readable"
fi
仅为完整起见,使用cat
:
我会将stderr重定向到/dev/null并检查返回值:
if ! cat file1 2>/dev/null > file2 ; then
rm file2
echo "file1 does not exist or isn't readable"
fi
File1 is empty
File2 consists below content
praveen
Now I am trying to append the content of file1 to file2
Since file1 is empty to nullifying error using /dev/null so output will not show any error
cat file1 >>file 2>/dev/null
File2 content not got deleted
file2 content exsists
praveen
If [ -f file1 ]
then
cat file >> file2
else
cat file1 >>file 2>/dev/null
fi