Скопируйте и chmod / chown одновременно

14

У меня есть файл журнала, принадлежащий rootмне, который я хочу скопировать в каталог, принадлежащий другому пользователю, чтобы он мог проанализировать его (сначала он должен быть распакован).

В настоящее время мне придется

# cp log.xz /home/user/Documents
# chown user:user /home/user/Documents/log.xz

Есть ли способ выполнить обе команды одновременно, возможно, с одним или несколькими cpпараметрами?

USR-местный ΕΨΗΕΛΩΝ
источник
Вы спрашиваете о запуске нескольких команд одновременно?
Асвиньеш
@Vignesh Я просто спрашиваю, как сделать это кратчайшим путем, возможно, при правильном использовании труб;)
usr-local-ΕΨΗΕΛΩΝ

Ответы:

6

Страница man cp не содержит никаких опций, которые позволили бы вам сделать это только с помощью команды CP. Если вы хотите просто выполнить команду и «уйти», вы можете поместить 2 команды в 1 строку, разделенные символом a; для автоматического выполнения команд в последовательности.

cp log.xz / home / user / Documents; Пользователь chown: user /home/user/Documents/log.xz
davidgo
источник
Хотя это было тривиально, я задал свой вопрос, чтобы посмотреть, есть ли какие-нибудь умные однострочные, например, при правильном использовании труб. Это, вероятно, не существует
usr-local-ΕΨΗΕΛΩΝ
Я не думаю, что это хорошее решение, но если вы не можете использовать каналы, я придумал следующую смесь, которая, как я подозреваю, будет работать - "cp -v /from.dir / to / dir 2> / dev / null | cut -f1 -d "'" | cut -c2- | xargs chown user: user "
davidgo
Прокрутите дальше принятого ответа, если вам действительно нужен ответ, ребята ...
JosiahYoder-deactive, кроме ..
34

Вы можете посмотреть на install:

install -g user -o user log.xz /home/user/Documents

installесть другие варианты, подходящие для установки. например, установить режим или сохранить структуру каталогов.

BatchyX
источник
Хороший совет. Я склонен думать, что «установка» предназначена для установки вещей, но ее фактическая сводка на странице руководства такова: «установить - копировать файлы и установить атрибуты»
Рауль Салинас-Монтеагудо
@esperanto: основное использование по- installпрежнему для установки файлов в систему. Некоторые программы на самом деле переопределяют install, изменяя переменную среды PATH, чтобы файлы устанавливались в другом месте. Некоторые сборщики пакетов делают это, поэтому файлы не устанавливаются в текущую систему, а сохраняются в пакет.
BatchyX
1
Это -g group -o user. -oстоит для владельца.
JosiahYoder-деактивен кроме ..
2

см. страницу карты команды cp

--preserve [= ATTR_LIST] сохранить указанные атрибуты (по умолчанию: режим, владелец, временные метки), если это возможно, дополнительные атрибуты: контекст, ссылки, xattr, все

Джалал Хаджиголамали
источник