Якщо я хочу, щоб зміст file2
збігався зі змістом file1
, я, очевидно, міг би просто запустити cp file1 file2
.
Однак, якщо я хочу , щоб зберегти всі про file2
окрім Змісту-власника, права доступу, розширені атрибути, списки управління доступом, жорсткі посилання і т.д., і т.д., то я не хотів би працювати cp
. * В цьому випадку я просто хочу , щоб грюкнути вмісту file1
в file2
.
Схоже, це зробить наступне:
< file1 > file2
Але це не працює. file2
обрізається нічим і не пишеться. Однак,
cat < file1 > file2
справді працює.
Мене здивувало, що перша версія не працює.
Чи є друга версія UUOC? Чи є спосіб зробити це без виклику команди, лише використовуючи перенаправлення?
Примітка. Я усвідомлюю, що UUOC - це скоріше педантична точка, ніж справжня антидіаграма.
* Як виявив tniles09 , cp
буде насправді робота в цьому випадку.
<
...
file1
його немає, або ще не читається, і ви відкриваєте його до того, <
як >
буде відкрито вихід, а потім подумайте, що відбувається, коли ви дозволите cat
спробувати його відкрити.
cat
(за замовчуванням), по суті виконуючи другу команду. Більше про це див. У відповіді Стефана Шазеласа нижче, ніж у коментарі.
< file1 > file2
залежить те, що ви хочете, залежить від оболонок.