Как выполнить mkdir -p -m 777 для всех отсутствующих каталогов?

Я помещаю файл в cron.hourly, который должен создать папку в первый раз, и даю ему доступ пользователю, поэтому мне не нужно использовать sudo, если я хочу удалить все содержимое в папке , И в этом делает папку пригодной для использования также. -m 777 не работает для отсутствующей папки при использовании -p

#!/bin/sh 
mkdir -m 777 -p 000Hourly/$(date +"%m-%d-%y_%T")

не работает: делает 000Hourly для администратора

#!/bin/sh
mkdir -m 777 000Hourly && mkdir -m 777 -p 000Hourly/$(date +"%m-%d-%y_%T")

выдает ошибку следующего часа mkdir: cannot create directory '000Hourly': File exists и останавливается выполнение остальной части этого.

Это то, что я пытаюсь сделать, поэтому мне нужно 777, чтобы я мог удалить всю папку, когда она переполнена.

#!/bin/sh
profiledir=/home/kangarooo/.mozilla/firefox/a2t42sie.default/
cd $profiledir;
mkdir -m 777 000Hourly ; mkdir -m 777 -p 000Hourly/$(date +"%m-%d-%y_%T") && cp -p sessionstore.js sessionstore.bak 000Hourly/$(date +"%m-%d-%y_%T")
exit 0
1
задан 10 November 2012 в 03:55

2 ответа

[ -d 000Hourly ] || mkdir -m 777 000Hourly
mkdir -m 777 000Hourly/$(date +"%m-%d-%y_%T")
0
ответ дан 10 November 2012 в 03:55

Вот лучший способ:

#!/bin/bash

dirname=000Hourly/$(date +"%m-%d-%y_%T") # Save the directory name for later access
user=bob   # Set to the username of the user who should have access.
group=bob  # Set to a group that should have access to the directory

mkdir -p "$dirname"
chown "$user:$group" "$dirname"

Если доступ нужен только одному пользователю, вы закончили.

Если доступ требуется более чем одному пользователю, создайте группу для всех, кому нужен доступ:

sudo groupadd mygroup

Прочитайте man groupadd для получения дополнительной информации и измените mygroup на любое имя, которое вы хотите ( но он должен начинаться со строчной буквы или подчеркивания и не содержать пробелов.

Затем добавьте всех необходимых пользователей в новую группу, где user1, user2 и user3 и имена пользователей для Добавить. Вы можете добавить столько, сколько хотите. :

for i in user1 user2 user3; do sudo usermod -aG mygroup "$i"; done

Новое членство в группах вступит в силу после выхода пользователя из системы (или перезагрузки компьютера).

Теперь измените ваш скрипт выше. Установите $group для вашей новой группы и добавьте следующую строку:

chmod 775 "$dirname"
0
ответ дан 10 November 2012 в 03:55

Другие вопросы по тегам:

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