Я пишу сценарий, который должен будет, делает файлы и каталоги, но прежде чем он будет идти вперед и будет делать это, я хочу осуществить проверку, чтобы видеть, есть ли у пользователя, запускающего скрипт, доступ для чтения и доступ для записи. Раз так сценарий должен продолжиться, еще он должен сказать пользователю, что они должны будут попытаться запустить скрипт в другом каталоге.
Через test
команда:
# doesn't echo OK, because no read-write permissions
$ [ -r /proc/28127/task/28189/fd ] && [ -w /proc/28127/task/28189/fd ] && echo "OK"
# echoes OK, because my user has read-write permissions to the directory
$ [ -r $HOME ] && [ -w $HOME ] && echo "OK"
OK
Это может быть помещено в функцию и сохранить это в ~/.bashrc
или используемый в сценарии:
check_dir() {
[ -r "$1" ] && [ -w "$1" ] && echo "OK"
}
И используемый в качестве так:
$ check_dir $HOME
OK
команда Via find
:
# Doesn't return directory name because I don't have read/write permissions
$ find /proc/28127/task/28189/fd -maxdepth 0 -readable -writable
# Returns directory name, because I can write/read there
$ find $HOME -maxdepth 0 -readable -writable
/home/xieerq