如果我想使内容file2
与的内容匹配file1
,我显然可以运行cp file1 file2
。
但是,如果我想保留一切有关file2
除了内容所有者,权限,扩展属性,ACL的,硬链接,等等等等,那么我就不会想运行cp
。*在这种情况下,我只是想在扑通内容file1
成file2
。
似乎可以做到以下几点:
< file1 > file2
但这是行不通的。 file2
被截断为空且未写入。然而,
cat < file1 > file2
确实有效。
令我惊讶的是第一个版本不起作用。
第二个版本是UUOC吗?有没有一种方法,仅通过使用重定向就可以在不调用命令的情况下做到这一点?
注意:我知道UUOC不仅仅是真正的反模式,更是一个学问点。
* 如tniles09发现的,实际上在这种情况下cp
将起作用。
<
... 的无用使用
file1
不存在或不可读时发生的情况,并在打开输出<
之前 >
将其打开,然后考虑允许cat
尝试打开它时发生的情况。
cat
(默认情况下),实际上运行第二个命令。请参阅下面的StéphaneChazelas的答案,以获取更多的信息,而不是在评论中。
< file1 > file2
你想要做什么是壳依赖。