Самый легкий путь к показанному содержание каталога?

Разве Вы не хотите использовать loginhooks для этого?

выборка того потока

loginhook

Это - место, где можно присоединить сценарий, поскольку пользователь входит в систему. Вы - все еще пользователь root на время сценария, но сразу после того, как сценарий заканчивает Вас, становятся входящим в систему пользователем.

HT2420-Mac OS X: Создание рычага входа в систему

3
10.04.2014, 06:06
6 ответов
[1131196] Вы можете использовать [1131670] find[1131671], чтобы избежать слишком длинного списка аргументов, передавая при этом как можно больше аргументов в [1131672]chown[1131673] за один ход (используя [1131674]+[1131675] вместо [1131676];[1131677]). [1131678]-prune[1131679] позволяет убрать некоторые ненужные аргументы в [1131680]chown[1131681] (он не будет опускаться по каталогам, он просто будет использовать [1131682]chown -R[1131683] на них):

4
27.01.2020, 21:16
[1131144]Вы можете использовать следующее:

Правка: Проблема с вашим примером выше в том, что вы работаете с текущей папкой (...). Раздел памяти моего примера исключает текущую папку из списка файлов/директорий, которые будут изменены.

Print0 изменяет вывод находки на ноль-терминал, и xargs оперирует над каждой строкой (или нулевой строкой, с -0) и запускает указанную команду с Вашим вводом в конце (в данном случае, с именем каждого файла). Вы можете изменить команду xargs, чтобы она была более явной:

Таким образом, вы можете поместить вывод find куда угодно в своей команде. [1131151]

1
27.01.2020, 21:16
[1131160]Почему бы просто не запустить [1131629]chown[1131630] внутри каталога рекурсивно.

Пример

VBoxManage internalcommands createrawvmdk -filename C:\Users\YGomez\mydisk.vmdk -rawdisk \\.\PhysicalDrive0

.[1131632] каталог до.

Измените только содержимое dir.

Содержимое после.

VBoxManage internalcommands createrawvmdk -filename C:\Users\YGomez\fedoraparts.vmdk -rawdisk \\.\PhysicalDrive0 -partitions 2,3,4

Тем временем каталог, [1131633].[1131634] остается нетронутым.

 grub-install /dev/sda2
Если есть скрытые файлы, обязательно настройте оболочку так, чтобы она включала их в глобус: [1131635]shopt -s dotglob[1131636] in bash, [1131637]FIGNORE='@(.|...)'[1131638] in ksh93, [1131639]setopt dot_glob[1131640] in zsh.

Или добавьте шаблон, который соответствует им (остерегайтесь, что в оболочках, отличных от zsh, [1131641].*[1131642] будут совпадать [1131643].[1131644] и [1131645]... [1131646]):

Или в zsh, просто

1
27.01.2020, 21:16
[1133128]В zsh:

Квалификатор глобуса [1133529]D[1133532] означает, что файлы точек будут совпадать.

Вы можете заставить [1133533]chown[1133534] выполнить рекурсивный обратный путь вместо оболочки:

Если вы беспокоитесь о том, что файлов так много, что командная строка будет слишком длинной, загрузить

chown[1133913] builten[1133536] из [1133537]zsh/files module[1133538]. Если вы не хотите, чтобы [1133539]chown[1133540] ссылался на builtin, вы можете загрузить только имена [1133541]zf_*[1133542]:

Когда вам нужно вызвать внешнюю команду (что здесь не так) из длинного списка файлов, которые могут не вписываться в лимит командной строки, вы можете использовать функцию 

zargs


:

0
27.01.2020, 21:16

Ниже приведена команда для рекурсивного изменения владельца каталогов и их подкаталогов -и всех файлов в них.

$ chown -R <username> <folder_to_change_ownership>

Шаг 1:Найдите имя пользователя, выполнив следующую команду

$ whoami

это выведет имя пользователя (ваше имя пользователя будет тем, которое вы установили)

manojselvin

Шаг 2:Скопируйте имя пользователя из предыдущего шага и замените в команде следующим образом

$ chown -R manojselvin myfolder

Эта команда изменит владельца всех каталогов и подкаталогов -на указанное имя пользователя. В данном случае это «манойсельвин»

.

Шаг 3:Чтобы проверить, был ли изменен владелец, выполните следующую команду, где находится каталог, например. моя папка в этом случае.

$ ls -la

это выведет информацию о владельце каталогов, как показано ниже

drwxr-xr-x  2 manojselvin manojselvin 4096 Jun 18 16:00 myfolder

как вы можете видеть, владельцем теперь является «manojselvin», это имя пользователя, которое мы использовали в этом случае.для других будет отображаться их имя пользователя или имя группы, которое было установлено

-1
27.01.2020, 21:16

Ответ Криса Дауна может не сработать, если в первом каталоге много файлов.

find. \! -iname. -exec chown user:group {} \;

В большинстве случаев ответ Криса Дауна, вероятно, не подведет и, вероятно, будет быстрее, чем этот ответ, но я хотел ответить на ваш вопрос именно так, как вы его задали.

Кроме того, вот немного другая команда, которая лучше сработала для моего случая. Я не люблю менять каталоги в своих скриптах, поэтому вместо этого я написал такую ​​команду:

find /foo/bar/baz \! -samefile /foo/bar/baz -exec chown user:group {} \;
0
27.01.2020, 21:16

Теги

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