У меня была подобная проблема, и даже при том, что моя администраторская учетная запись должна была иметь достаточные права, я не смог убрать старые файлы, пока я не изменялся/брал владение (свойства, безопасность, усовершенствованная, владелец). Сообщение об ошибке не подразумевало ничего вида, но это работало!
Вот то, что можно сделать с мочой:
seq 5 -1 1 > file
cat file |pee 'sort -u > sorted' 'sort -R > unsorted'
Так мочатся работы с каналами оболочки вместо файлов.
удар не должен мочиться, он может открыть команды оболочки как файлы:
cat file |tee >(sort -u > sorted) >(sort -R > unsorted)
Вероятно, легче понять, использовали ли Вы tee
сначала. Этот полезный старый инструмент вынимает стандартный вход и пишет в несколько файлов плюс стандартный вывод. Следующее:
echo "Hello world" | tee one two
Создаст два файла, названные one
и two
, оба содержащий строку Hello world
. Это также распечатает к Вашему терминалу.
Теперь pee
выполняет подобную функцию, но вместо того, чтобы перенаправить вывод в несколько файлов она перенаправляет к нескольким вторичным командам, каналам крыла. Это отличается немного от tee
в уважении, что это не отправляет исходный stdin в stdout, потому что это не имело бы смысл, комбинирующий его с выводом вторичных команд. Следующий очень простой пример:
echo "Hello world" | pee cat cat
Произведет строку Hello world
к Вашему терминалу дважды. Это вызвано тем, что каждый из двух экземпляров cat
получает стандартный вывод и делает что cat
делает, который является печатью.