показанный не разрешенный, но у меня есть доступ для записи. Как я могу взять рекурсивное владение?

Если Ваш входной файл содержит строку 'c/d e/f' и Вы хотите обработать объект c/d e/f (без кавычек), затем можно искать xargs. Его формат ввода является разделенным пробелом списком строк с символами ' и " разграничивание литеральных строк. Кроме того, \ заставляет следующий символ интерпретироваться буквально, но только вне строки. Например, вот входной файл:

how\'dy 'hello world' aaa\
bbb

Объекты в этом файле how'dy, hello world и aaa␤bbb (где символ новой строки).

5
13.04.2017, 15:36
3 ответа

Только действительно необходимо взять владение каталогов. Обычные файлы будут заботиться о себе в следующий раз, когда Вы изменяете их, символьные ссылки и каналы не имеют значения, и я собираюсь предположить, что нет никаких устройств или других экзотических типов.

Можно сделать рекурсивную копию каталогов, но сделать жесткие ссылки из регулярных файлов вместо того, чтобы копировать их. С GNU coreutils (Linux, Cygwin):

cp -al A B

Каждый регулярный файл A/dir/file трудно связан как B/dir/file. Можно затем удалить исходное дерево.

Если у Вас нет GNU coreutils, можно использовать rsync вместо этого:

cd A
rsync -a --link-dest=$PWD . ../B

Чтобы удостовериться, что удаление A на самом деле не удалит файла, проверьте, что все регулярные файлы имеют количество жесткой ссылки по крайней мере 2 — следующая команда ничего не должна производить:

find A -type f -links 1
1
27.01.2020, 20:39

Можно взять владение как это:

$ mv A A.old
$ mkdir A
$ mv A.old/* A.old/.[!.]* A.old/..?* A/
$ rmdir A.old
4
27.01.2020, 20:39
  • 1
    Большой, Спасибо! Вы возражаете уточнять то, почему этот подход работал бы, и почему он не будет работать со скрытыми файлами? –  Amelio Vazquez-Reina 30.07.2012, 01:26
  • 2
    @roseck третья команда пропускает скрытые файлы. Это не намного больше работы, чтобы заставить его включать их, видеть мое редактирование. –  Gilles 'SO- stop being evil' 30.07.2012, 03:24
  • 3
    мне любопытно, почему Вы ожидаете, что mv будет иметь какой-либо эффект на владение –  Alan Curry 30.07.2012, 06:26
  • 4
    @AlanCurry mv не имеет никакого эффекта на владение, но mkdir A имеет. Новый созданный каталог будет принадлежать пользователю –  Ulrich Dangel 30.07.2012, 09:34
  • 5
    @UlrichDangel, о! Я интерпретировал фразу, "берут владение каталога" как допущение, что рекурсивный chowning был желаем. –  Alan Curry 30.07.2012, 09:48

Любой способ сделать это, которое не включает копирование, собирается не столкнуться ни с каким-chown правилом. Попросите базироваться приятно, чтобы сделать это для Вас.

Если Вы амбициозны, Вы могли бы записать новую подобную chown утилиту, разработанную для setuid-корневой установки, которая делает ее собственные проверки безопасности и решает на основе более свободного правила, должен ли показанный быть позволен.

Если это главным образом о дисковом пространстве, Вам только нужен инструмент, который чередует CP с комнатой...

0
27.01.2020, 20:39
  • 1
    AFAIK можно сделать редкие копии, если файл имеет многих, обнуляет: cp --sparse=always –  Janus Troelsen 30.07.2012, 23:16

Теги

Похожие вопросы